【问题标题】:Creating an array of inherited objects创建继承对象数组
【发布时间】:2015-02-01 11:32:17
【问题描述】:

我正在尝试创建一个将某个对象添加到继承对象数组中的方法。

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

在主类中,我创建了 3 个相互扩展的类对象:表示 Document 从 Biblio 扩展,Article 从 Document 扩展,Book 从 Article 扩展。

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

运行代码后,我在线程“main”java.lang.NullPointerException 错误中遇到异常。 我是java的初学者,我找不到帽子错了..

【问题讨论】:

  • 你应该这样做: Biblio[] Tab = new Biblio[specify_count];而你的构造函数没有主体
  • 你能发布完整的堆栈跟踪吗?所有类都在同一个包/文件夹中吗?
  • 是的,它有效,我必须添加 Tab = new Biblio[5];在构造函数中。

标签: java arrays class main extends


【解决方案1】:

您从未初始化用于插入的数组。当您执行 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++;
           }
      }     

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多