【发布时间】:2020-01-25 08:16:15
【问题描述】:
如何将 java Object 转换为 java Object[] 或 Integer[] 错误(我无法转换为 [Ljava.lang.Object;);
public class LongestAscendingSumSequence {
public static void main(String[] ar) {
int[] arr = { 1, 2, 3, 20, 3, 25, 30, 31, 32, 33, 34 };
System.out.println(getSum(arr));
float[] brr = { 1.3f, 2.3f };
System.out.println(getSum(brr));
int[] crr = { 1, 2, 3, 20, 3, 25, 30, 31, 32, 33, 34, -2 };
System.out.println(getSum(crr));
}
public static String getSum(Object obj) {
Object[] objects = (Object[]) obj;
System.out.println(objects.length);
return null;
}
}
得到这个错误
Exception in thread "main" java.lang.ClassCastException: [I cannot be cast to [Ljava.lang.Object;
at jan25.LongestAscendingSumSequence.getSum(LongestAscendingSumSequence.java:16)
at jan25.LongestAscendingSumSequence.main(LongestAscendingSumSequence.java:7)
【问题讨论】:
-
ìnt[]不是Object[],因此例外。在这种情况下,即使协方差也无济于事。如果您使用的是Integer[]而不是int[],则为would be working。 -
这就是为什么像
Arrays.sort这样的各种库函数有一堆原始数组的重载。
标签: java arrays object casting