arraycopy中的空指针异常

时间:2013-04-30 06:05:52

标签: java arrays generics nullpointerexception

我目前正在学习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);

2 个答案:

答案 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

的可能性