首页 > 解决方案 > 从单独的初始化列表创建对象数组时遇到空指针异常消息

问题描述

我创建了三个必须在 'students' 数组中使用的初始化器数组,它应该是一个学生对象数组。每次运行时,都会出现 NullPointer 错误。

class School
{
   private Student[] students;
   private int size;

   public School (int s)
   {size = s;}

   public void addData()
   {
      String[] name = {"Tom", "Ann", "Bob", "Jan", "Joe", "Sue", "Jay", "Meg", "Art", "Deb"};
      int[] age = {21, 34, 18, 45, 27, 19, 30, 38, 40, 35};
      double[] gpa = {1.685, 3.875, 2.5, 4.0, 2.975, 3.225, 3.65, 2.0, 3.999, 2.125};

      for(int i = 0; i < size; i++){
          students[i] = new Student(name[i], age[i], gpa[i]);
        }
   }  

   public String toString()
   {
       String s = "";
       for(int i = 0; i < size; i++){
           s = s + students[i].toString();
        }
        return s;
   }
}

 class Student
{
   private String name;
   private int age;
   private double gpa;

   public Student (String n, int a, double g)
   {
      name = n;
      age = a;
      gpa = g;
   }

   public String getName() { return name; }  
   public int getAge()     { return age; }  
   public double getGPA()  { return gpa; }

   public String toString()
   {
      String temp = name + "  " + age + "  " + gpa + "\n";
      return temp;
   }
}

问题究竟从哪里开始,如何解决?

标签: javaarraysobjectmethodsnullpointerexception

解决方案


像这样初始化:

private Student[] students = new Student[100]

理想情况下,学生数组必须大于大小,但大小是在学生数组之后定义的,所以我们不能这样做,必须使用一个足够大的随机数组长度。


推荐阅读