以下是我的所有权类的一部分。它没有编译错误但是当我尝试使用其他类运行并输入正确的输入时,它在addOwner()的addElement()行给了我一个NPE ...我不明白为什么。 OwnerParser 不是问题,我肯定知道,输入也不是。我尝试在一个较小的项目中初始化Vector然后列出它的内容,它也给了我一个NPE。基本上我需要知道如何向OwnerList添加一个新的Owner对象而不会得到NullPointerException 谢谢。
import java.util.*;
import java.io.*;
public class Ownership implements Serializable
{
private Vector<Owner> ownerList;
private Vector<Pet> petList;
public void Ownership()
{
ownerList = new Vector<Owner>();
petList = new Vector<Pet>();
}
public boolean addOwner(String b)
{
Owner r = new Owner();
r = OwnerParser.parseStringToOwner(b);
ownerList.addElement(r);
return true;
}
}
答案 0 :(得分:2)
您的默认“构造函数”具有void
返回值,因此不是构造函数,而是普通方法,命名为构造函数。因此,永远不会调用“构造函数”,并且永远不会初始化向量。
将public void Ownership() {...}
更改为public Ownership() {...}
,它会有效。