2015-07-11 57 views
-2

说我有类:错误与添加到列表与整型变量 - 的Java

package school; 
public class SchClass { 
    private Student[] students; 
    private int numStudents = 0; 
    public SchClass() { 
    } 
    public void addStudent(Student s) { 
     this.students[this.numStudents] = s; 
     this.amountStudents++; 
    } 
} 

,我试图在另一个类运行此:

import school.SchClass; 
import school.Student; 
import school.Tutor; 
public class JavaTesting { 
    public static void main(String[] args) { 
     Student s = new Student(); 
     Tutor t = new Tutor(); 
     SchClass shc = new SchClass(); 
     sch.setTutor(t); 
     sch.addStudent(s); 
    } 
} 

当我做到这一点,它报告此NullPointer异常:

Exception in thread "main" java.lang.NullPointerException 
    at school.SchClass.addStudent(SchClass.java:8) 
    at javatesting.JavaTesting.main(JavaTesting.java:10) 

什么是错?我确信我编码完美,但仍然报错。

+0

初始化'学生[]数组students'尝试 –

+0

在最少的语法检查代码示例,如果它们应该是完整的代码块。 – luksch

回答

0

阅读关于Collection framework。如果你想要动态的“阵列”,你可以使用List<T>

数组不是动态的。

另外,你的班上有很多错误。例如this.amountStudents++应该做什么?此外,我很惊讶你的代码不会在sch.setTutor(t);失败,因为你没有声明一个名为sch的变量。你的意思是shc

2

成员的学生为空

public class SchClass { 
     private Student[] students = new Student[ size ]; 
     private int numStudents = 0; 
     public SchClass() { 
     } 
     public void addStudent(Student s) { 
      this.students[this.numStudents] = s; 
      this.amountStudents++; 
     } 
    } 

,也将努力只untils amountStudents <大小,然后execption会发生这样更能被

public class SchClass { 
    private List<Student> students = new ArrayList<Student>(); 
    public SchClass() { 
    } 
    public void addStudent(Student s) { 
     this.students.add(s); 
    } 
}