是否有可能检查对象是带子句的数组还是集合?我想要达到的目标:
假设数组实现了Iterable,并假定Object foo可以是数组或集合,则我想使用如下代码片段:
if (foo instanceof Iterable) {
for (Object f : (Iterable) foo) {
// do something with f
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,数组不能转换为Iterable。它也没有实现Collection。是否还有其他可能像上述那样在一个循环中处理这两者?当然不是使用if-else if-clause和两个循环(这不是很好)。
编辑:针对这些答案。我知道isArray()方法,但是在这种情况下,
...
for (Object f : (Iterable) foo) {
...
Run Code Online (Sandbox Code Playgroud)
将失败。遗憾和代码冗余,因为尽管foreach循环可同时用于Collections和Arrays,但我必须使用两个循环。
是否有一种或多或少的简单方法(无需自己实现)使用类似2D数组的语法访问字符串中的字符?
例如:
"This is a string\nconsisting of\nthree lines"
Run Code Online (Sandbox Code Playgroud)
在那里你可以访问(读/写)'f'喜欢的东西myString[1][12]-第二行第13列.