gpt4 book ai didi

java Array.newInstance 抛出 ClassCastException,为什么?

转载 作者:行者123 更新时间:2023-12-01 16:45:02 26 4
gpt4 key购买 nike

非常简单的代码:

    int[] a = new int[]{4,1,2,3};
Array a3 = (Array) Array.newInstance(a.getClass(), a.length);

它抛出异常'线程“main”中的异常java.lang.ClassCastException:[[我无法转换为java.lang.reflect.Array'

我哪里出错了,如何解决?

最佳答案

Array.newInstance(a.getClass(), a.length) 创建一个二维 int 数组(这就是创建元素类型为 int[] 的数组时发生的情况),所以应该是:

int[][] a3 = (int[][]) Array.newInstance(a.getClass(), a.length);

Array 是一个用于通过反射创建数组实例的类,但数组实例不是该类的实例。

顺便说一句,如果您打算创建一个一维 int 数组(即 int[]),您应该编写:

int[] a3 = (int[]) Array.newInstance(int.class, a.length);

关于java Array.newInstance 抛出 ClassCastException,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53391640/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com