线程" main"中的例外情况java.lang.ClassCastException:[我无法转换为java.lang.Integer

时间:2015-03-01 07:56:17

标签: java exception 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

我不知道为什么我无法这样设置。有人可以帮我这个吗? 感谢。

1 个答案:

答案 0 :(得分:3)

如果p是基本数组int[]Arrays.asList(p)将返回其单个元素为int[]的List。这可以解释为什么P.get(0)无法转换为整数。

p更改为Integer[]Arrays.asList()会生成您想要的列表。

它还允许您更改此行:

List<Integer> P = new ArrayList(Arrays.asList(p));

List<Integer> P = Arrays.asList(p);

您应该避免将原始类型分配给泛型类型。这样,当您将错误类型的List分配给P(更容易查找和修复)时,您将收到编译错误而不是运行时错误。