【发布时间】:2019-10-16 10:52:30
【问题描述】:
假设我有一个接受 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 对象是否是一个数组?
【问题讨论】:
-
我不明白你的问题。上面的代码是否给出了错误信息?还是您确定“它是一个数组”,然后在使用它之前 not 强制转换为数组?
-
见stackoverflow.com/questions/219881/… ...您显示的代码非常好。所以:你的问题是什么。
-
您的代码中没有任何地方尝试迭代任何内容。您能否显示产生该错误的代码?我的预感是你试图在不强制转换的情况下迭代
x(仅仅因为x引用的对象是一个数组并不意味着你可以在x上执行数组操作,因为类型变量是Object,而不是Object[])。 -
抱歉,我刚刚更新了我的代码以显示我真正想要做的事情
标签: java