线程 "main" java.lang.ClassCastException 中的异常:[我无法转换为 java.lang.Integer
Exception in thread "main" java.lang.ClassCastException: [I cannot be cast to java.lang.Integer
List<Integer> P = new ArrayList(Arrays.asList(p)); // Copies array p into Arraylist P
P.sort(null);
List<Integer> kk = new ArrayList();
kk.set(0, P.get(0)+k); //Exception generated on this line
我不知道为什么我不能这样设置。谁能帮我解决这个问题?
谢谢
如果 p
是原始数组 int[]
,Arrays.asList(p)
将 return 一个列表,其单个元素是 int[]
。这可以解释为什么 P.get(0)
不能转换为整数。
将 p
更改为 Integer[]
,Arrays.asList()
将生成您想要的列表。
它还允许您更改此行:
List<Integer> P = new ArrayList(Arrays.asList(p));
至
List<Integer> P = Arrays.asList(p);
您应该避免将原始类型分配给泛型类型。这样,当您将错误类型的列表分配给 P
(更容易查找和修复)时,您会得到编译错误而不是运行时错误。
List<Integer> P = new ArrayList(Arrays.asList(p)); // Copies array p into Arraylist P
P.sort(null);
List<Integer> kk = new ArrayList();
kk.set(0, P.get(0)+k); //Exception generated on this line
我不知道为什么我不能这样设置。谁能帮我解决这个问题? 谢谢
如果 p
是原始数组 int[]
,Arrays.asList(p)
将 return 一个列表,其单个元素是 int[]
。这可以解释为什么 P.get(0)
不能转换为整数。
将 p
更改为 Integer[]
,Arrays.asList()
将生成您想要的列表。
它还允许您更改此行:
List<Integer> P = new ArrayList(Arrays.asList(p));
至
List<Integer> P = Arrays.asList(p);
您应该避免将原始类型分配给泛型类型。这样,当您将错误类型的列表分配给 P
(更容易查找和修复)时,您会得到编译错误而不是运行时错误。