说我有一个方法可以接受java对象(Java.lang.Object)的实例作为参数。有没有一种方法可以确定传入的Object是否是一个数组(包含任何东西),然后对其进行迭代?
这是我目前正在尝试做的事情
public static void isThisAnArray(Object x) {
if (x instanceof Object[]){
for (Object item : x) {
//do something with item
}
}
}
但是我在for (Object item : x)
行上看到“只能迭代数组或java.lang.Iterable实例”,这很有意义,因为我传递的是对象而不是对象数组。但是,如果该对象是对象数组怎么办?抱歉,这很令人困惑,但是有没有办法确定传入的Java对象是否是数组?
答案 0 :(得分:4)
将内容放入具有instanceof的条件中不会神奇地使编译器知道该事物是该实例的一个实例。实际上,您必须进行投射:
if (x instanceof Object[]){
for (Object item : (Object[]) x) {
}
}