使用Object数组时出现NullPointerException

时间:2014-11-18 12:14:19

标签: java arrays object nullpointerexception

我在这个程序中得到NullPointerException。我相信在声明Object Array时存在一些问题。

import java.util.Scanner;

class One 
{
    public static void main(String args[]) 
    {
        Scanner key = new Scanner(System.in);
        two[] obj = new two[3];

        for (int i = 0; i < 3; i++) {
            obj[i].roll = key.nextInt();
            obj[i].name = key.nextLine();
            obj[i].grade = key.nextLine();
        }

        for (int i = 0; i < 3; i++) {
            System.out.println(obj[i].roll + " " + obj[i].name + " " + obj[i].grade);
        }
    }
}

class Two 
{
    int roll;
    String name, grade;
}

2 个答案:

答案 0 :(得分:3)

您忘记初始化数组中的对象。如果没有此初始化,obj[i]将包含空引用。

two[] obj=new two[3];
for(int i=0;i<3;i++)
{
    obj[i] = new two();
    obj[i].roll=key.nextInt();
    obj[i].name=key.nextLine();
    obj[i].grade=key.nextLine();
}

答案 1 :(得分:0)

数组中的对象未初始化。 致电obj[i] = new Two(); 作为你在第一个for循环中的第一个声明。 顺便说一句:&#34;两个&#34;必须是大写的&#34;两个&#34;