1

我目前正在学习 Java,并试图通过学习泛型来工作。我有一个Holder需要可变参数的类。我正在尝试将它们放入一个数组myArray中以备将来使用。但是我NullPointerException在 arraycopy 线上得到了一个,我似乎无法弄清楚为什么。

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);
4

2 回答 2

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);
    }
}
于 2013-04-30T06:07:53.383 回答
0
 System.arraycopy(args, 0, myArray, 0, args.length); 

1)myArray不是intialized

args2) 和成为的可能性 null

于 2013-04-30T06:07:46.180 回答