java - 将原始数组转换为对象并返回

标签 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。一定是另一种检测方法吗?

谢谢。

附言。我必须在数组中使用原始类型。

最佳答案

转换是正确的,(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/

相关文章:

java - 使用 Stream API 将 Map 转换为另一个 Map

java - 如何从 cordova 插件的服务中访问 Activity ?

java - 如果在控制台中输入非数字,如何使程序继续运行

java - For 循环向后递增数组

java - 在 solr 4.3 中启用基本身份验证

java - JavaScript 如何将未加引号的纯表达式识别为 RegExp 对象?

javascript - 如何解决写作方向问题?

java - 最终改变的属性

JavaScript Array.sort 不适用于某些数字数组

.net - 带双括号 ()() 的 VB.NET 数组