【问题标题】:Putting a class inside another list in another class [duplicate]将一个类放在另一个类的另一个列表中[重复]
【发布时间】:2017-06-24 23:59:40
【问题描述】:

所以基本上我想把包含 2 个数组列表的类“GradeBook”放在另一个类“课程”中。我创建了一个 setCourse 方法将两个类链接在一起,但是当我尝试将成绩簿放入“课程”类中的“成绩簿”列表中时,出现 NullPointerException。为什么我不能把这个类放在列表中。

公开课成绩册{

 private List<Double> assignmentScores;
 private List<Double> quizScores;
 private Course course;

 public GradeBook() {
    assignmentScores = new ArrayList<>();
    quizScores = new ArrayList<>();
 }
 public void setCourse(Course course) {
    this.course = course;
 }

public class Course {

private List<GradeBook> gradeBooks;

public void addGradebook(GradeBook gradebook) {
    gradebook.setCourse(this);
    gradeBooks.add(gradebook);
}

【问题讨论】:

  • 因为gradeBooksnull。这就是NullPointerException 告诉你的。通过查看堆栈跟踪,您可以看到它发生的位置,这为您提供了关于可能是 null 的提示。
  • 我在等待那把锤子砸在副本上。
  • 能贴出完整的代码吗?

标签: java class arraylist intellij-idea java-8


【解决方案1】:

你需要初始化gradeBooks。您正在获取空指针,因为当您尝试添加成绩簿时,gradeBooks 为空。例如,您可以在 Course 类的构造函数中对其进行初始化。

public Course() {
    gradeBooks = new ArrayList<>();
}

public void addGradebook(GradeBook gradebook) {
    gradebook.setCourse(this);
    gradeBooks.add(gradebook);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    相关资源
    最近更新 更多