0

这是我的所有权课程的一部分。它没有编译错误,但是当我尝试与其他类一起运行并输入正确的输入时,它在 addOwner() 的 addElement() 行给了我一个 NPE ......我不知道为什么。OwnerParser不是问题,我肯定知道,输入也不是。我尝试在一个较小的项目中初始化一个 Vector,然后列出它的内容,它也给了我一个 NPE。基本上我需要知道如何在没有得到 NullPointerException 的情况下将新的 Owner 对象添加到 OwnerList谢谢。

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

1 回答 1

2

您的默认“构造函数”有一个void返回值,因此它不是构造函数,而是一个普通方法,命名类似于构造函数。因此,永远不会调用“构造函数”,并且永远不会初始化向量。

更改public void Ownership() {...}public Ownership() {...},它将起作用。

于 2013-03-21T08:51:25.883 回答