我正在使用 Netbeans。
当我运行下面的程序时,我得到这个输出[I@de6ced
!怎么会?
import java.util.Arrays;
import java.util.Vector;
public class Test {
public static void main (String[] args) {
int[] a = new int[1];
a[0] = 5;
Vector<Integer> a1 = new Vector(Arrays.asList(a));
System.out.println(a1.elementAt(0));
}
}
我也尝试过解决它,但后来我得到了
线程“main”中的异常 java.lang.ClassCastException: [我无法转换为 java.lang.Integer
在 TopCoder.Test.main(Test.java:13)
Java 结果:1
public static void main (String[] args) {
int[] a = new int[1];
a[0] = 5;
Vector<Integer> a1 = new Vector(Arrays.asList(a));
int b = a1.elementAt(0); /* EXCEPTION THROWN HERE */
System.out.println(b);
}
[I@de6ced
can be broken down as:
- [
an array
- I
of integers
- de6ced
with this reference hash-code (which, in Sun Java, is basically the reference)
Object 的 toString() 返回类似 ClassName@HashCode 的内容,这正是您在这里看到的(相当奇怪的)原始数组类所发生的情况。
问题是推断出错误的类型<T> List<T> asList(T...)
方法。更改您要使用的代码Integer[]
代替int[]
。这是 int 是原始类型的结果,但 int[] 是一个对象。
你可以直接看到这个:
System.out.println(Arrays.asList(new int[]{5}));
=> [[I@
一些参考
System.out.println(Arrays.asList(new Integer[]{5}).get(0));
=> 5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)