我目前正在学习Java,并且正在努力学习泛型。我有班级Holder
,它需要varargs。我正在尝试将这些放入数组myArray
以供将来使用。但是我在arraycopy行上得到NullPointerException
,我似乎无法弄明白为什么。
class Holder<T> {
T[] myArray;
public Holder(T... args) {
System.arraycopy(args, 0, myArray, 0, args.length); //null pointer exception
}
这就是我用来创建实例的内容:
Holder<Integer> mySample = new Holder<>(1,2,3);
答案 0 :(得分:3)
这是因为myarray
未初始化。
T[] myArray; // `myarray` is uninitialized, as of now.
public Holder(T... args) {
if(args != null && args.length > 0) {
myArray = new t[args.length]; // `myarray` is initialized here.
System.arraycopy(args, 0, myArray, 0, args.length);
}
}
答案 1 :(得分:0)
System.arraycopy(args, 0, myArray, 0, args.length);
1)myArray
不是intialized
。
2)args
成为null