所以我有一个可能是数组的对象。它也可以是原始的或字符串。如果它是一个数组,它可以是一个字面上任何东西的数组。
我可以确定它是否是一个数组,但我似乎无法将它转换为任何我可以迭代以从中获取值的东西。
// o is an object and clazz is the class of the o
if (clazz == Array.class) {
Class ofArray = o.getClass().getComponentType();
String arrayType = ofArray.getName(); // 'Double' for my test case
//ERROR: [D cannot be cast to [Ljava.lang.Object
Object[] objects = (Object[]) o;
}
我的背景是 ruby 和 php(它可以在那里工作),静态类型让我很头疼。有任何想法吗?
编辑:
这会引发错误
[D cannot be cast to [Ljava.lang.Object.
我错过了什么?
if (o.getClass().isArray()) {
Object[] objects = (Object[]) o;
}