0

これが私のOwnershipクラスの一部です。コンパイルエラーは発生しませんが、他のクラスで実行しようとして正しい入力を入力すると、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 に答える