我有这个
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
。一定是另一种检测方法吗?
谢谢。
附言。我必须在数组中使用原始类型。
最佳答案
转换是正确的,(int[])arr
就可以了。
如果需要,您可以通过比较类对象来识别类型:
if(arr.getClasS() == int[].class) {
...
}
或更好
if(arr instanceof int[]) {
...
}
[I
类名是另一种方式,但在代码中不太清晰。
您还可以执行 arr.getClass().getComponentType()
,它应该返回 int.class
。
关于java - 将原始数组转换为对象并返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5252403/