java - 数组类的空指针异常

标签 java exception object printing null

每次当我创建一个类和其他类(将是一个数组,我将在其中存储第一个类对象并调用一个方法)时,我都会收到一个 nullPointerEception..

例如:

public class person {

    private String name,int age;
    public Class()//constructor

    public void print() {

        System.out.println(name);
        System.out.println(name);

        //.........others methods
    }
}

public class personList {

    person[] pl = new person[10];
    int i=0;

    public void add(person p) {

        pl[i]=p;
        i++
    }

    public void print() {

        for(int j=0;j<pl.length;j++)
        {
            pl[j].print();
        }
    }
}

错误在这里:pl[j].print();

对象 p[j] 不为 null ,因为我在 Main file(p=new person("Maxim",17),pl.add(p)) 中启动.

即使我像这样从 Main 初始化 p[0]=.....,p[1]=... 我也会收到相同的错误。

我做错了什么?

最佳答案

错误在这一行:

person[] pl = new person[10];

您需要初始化数组中的每个 Person 对象。

for(int i = 0; i < pl.length; i++)
{
    pl[i] = new Person();

}

您的 Person 构造函数也是错误的。应该是

public Person(){...}

不是

public Class(){...}

关于java - 数组类的空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22381789/

相关文章:

java - OpenAM OpenDJ dockerization 问题 : Fails to redeploy using old data source

java - Gradles `jar` 是一种方法吗?

javascript - Facebook 对象的一部分显示为未定义,但它并非未定义

c++ - 为什么我们不能在 C++ 中为抽象类创建对象?

object - 一个不渲染的简单顶点缓冲区对象 (C++)

java - 无法从字符串中获取值

java - 如何减少以下程序的执行时间

c# - 在 .NET 中读取 native win32 异常数据/参数

Java:在这种特殊情况下如何处理ConcurrentModificationException?

c++ - C++ 中的异常处理从不捕获基本类型的异常,总是导致段错误