2014-12-03 120 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