2014-12-03 121 views
0

我想創建一個方法,將某個對象添加到繼承對象數組中。創建一個繼承對象數組

public class Biblio { 
Biblio[] Tab; static int i=0; 
Biblio(); 
void insert(Biblio O){Tab[i]=O;i++;}}  

在主類,我創建的,從彼此延伸的類3點的對象:用於從文檔延伸文獻記錄,從條延伸文件,圖書從條延伸。

public class TestBiblio { 
public static void main(String[] args) { 
    Document A= new Document(); 
    Article B= new Article(); 
    Book C= new Book(); 
    Biblio D= new Biblio(); 
    D.insert(A); 
    D.insert(B); 
    D.insert(C);}} 

一旦我運行代碼,我得到線程「主」顯示java.lang.NullPointerException錯誤異常。 我是java的初學者,我找不到帽子出問題了。

+2

你應該這樣做:Biblio [] Tab = new Biblio [specify_count];並且你的構造函數沒有正文 – 2014-12-03 19:04:51

+0

你可以發佈完整的堆棧跟蹤嗎?所有的類都在同一個包/文件夾中嗎? – Mechkov 2014-12-03 19:05:02

+0

是的它的工作,我不得不添加Tab =新Biblio [5];在構造函數中。 – EatingTooMuch 2014-12-08 12:54:52

回答

4

您從未初始化您用來插入的數組。當您執行Tab [i]時,您正在取消引用空指針。 有類似

public class Biblio { 
      Biblio[] Tab; 
      static int i=0; 
      public Biblio() { 
        Tab = new Biblio[5]; 
      } 
      void insert(Biblio O){ 
       Tab[i]=O;i++; 
      } 
     }  
+0

您可以將此標記爲接受的答案嗎?選中標記:) – committedandroider 2014-12-03 20:16:33

+0

是的,它現在可以工作。非常感謝。 – EatingTooMuch 2014-12-08 12:48:38