将原始数组转换为Object并返回

时间:2011-03-09 21:28:52

标签: java arrays

我有这个

int [] abc = new int[30];

Object arr = abc;

如何将arr投回int[]?即

int [] foo = (int[])arr

另外,如果arr可以指向int[]byte[],如何区分它们?

我已检查arr.getClass().getName()返回[Iarr.getClass().isPrimitive()false。必须是检测它的另一种方法吗?

感谢。

PS。我必须在我的数组中使用原始类型。

1 个答案:

答案 0 :(得分:6)

投射是正确的,(int[])arr可以解决问题。

如果需要,您可以通过比较类对象来识别类型:

if(arr.getClasS() == int[].class) {
    ...
}

或更好

if(arr instanceof int[]) {
   ...
}

[I类名是另一种方式,但在代码中不太清楚。 您也可以执行arr.getClass().getComponentType(),这应该返回int.class