我有这个
int [] abc = new int[30];
Object arr = abc;
如何将arr
投回int[]
?即
int [] foo = (int[])arr
另外,如果arr可以指向int[]
或byte[]
,如何区分它们?
我已检查arr.getClass().getName()
返回[I
,arr.getClass().isPrimitive()
为false
。必须是检测它的另一种方法吗?
感谢。
PS。我必须在我的数组中使用原始类型。
答案 0 :(得分:6)
投射是正确的,(int[])arr
可以解决问题。
如果需要,您可以通过比较类对象来识别类型:
if(arr.getClasS() == int[].class) {
...
}
或更好
if(arr instanceof int[]) {
...
}
[I
类名是另一种方式,但在代码中不太清楚。
您也可以执行arr.getClass().getComponentType()
,这应该返回int.class
。