java - 从单独的初始化列表创建对象数组时遇到空指针异常消息
问题描述
我创建了三个必须在 '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;
}
}
问题究竟从哪里开始,如何解决?
解决方案
像这样初始化:
private Student[] students = new Student[100]
理想情况下,学生数组必须大于大小,但大小是在学生数组之后定义的,所以我们不能这样做,必须使用一个足够大的随机数组长度。
推荐阅读
- javascript - 如何获得精确长度的输入?
- python - 数据框填充留下空值?
- php - 如何在 php 中制作点...超链接?
- python - 发生异常:解封对象时出现 ModuleNotFoundError(使用 dill 或 pickle 或 joblib)
- javascript - 无法区分“相似”代码
- matlab - For 循环似乎比矩阵运算更快
- python - 如何在日期时间解决 Errno 22
- java - 如何在 Java 中生成八位字节字符串?
- ansible - 如何在ansible中一次访问一组主机名?
- markdown - 为什么我在 Jekyll 网站上的 markdown 代码块周围出现双框?