为什么这不起作用
import java.util.ArrayList;
public class Vector
{
ArrayList<Long> vector;
public Vector(long ...vector)
{
for (long value : vector)
this.vector.add(new Long(value));
}
}
当我创建像Vector a = new Vector(4,7,8);
这样的新对象时,它会说
java.lang.NullPointerException
我尝试了Arrays.asList(array);
和
for (int i=0;i<vector.lenght;i++)
this.vector.add(vector[i])
和同样的错误
答案 0 :(得分:1)
您的代码几乎是正确的,因为要正确编写要复制到arraylist的代码。但是,错误是NullPointerException
的事实让我们知道某些东西在它应该不存在的地方是空的。在这种情况下,vector
本身为null,因为它从未被赋值。您可以声明vector
并使用ArrayList<Long> vector = new ArrayList<>();
,或在构造函数中指定vector = new ArrayList<>();
进行分配。
注意:<>
钻石简写是Java 7及更高版本中可用的泛型类型的简写。如果定位到Java 6,请在右侧使用new ArrayList<Long>();
。