【问题标题】:NPE when trying to addElement() for a Vector尝试为 Vector 添加元素()时的 NPE
【发布时间】:2013-03-21 08:45:51
【问题描述】:

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

【问题讨论】:

  • 在讨论异常时,请提供堆栈跟踪。 Owner r 可以为 null,或者 ownerList 可以为 null 在您的情况下。

标签: java vector nullpointerexception element add


【解决方案1】:

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

public void Ownership() {...} 更改为 public Ownership() {...} 即可。

【讨论】:

  • 好吧,我觉得自己像个白痴。它现在工作得很好。我的双面手掌
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-17
  • 1970-01-01
  • 2015-05-16
  • 1970-01-01
相关资源
最近更新 更多