Java 我的Android中类中的Arraylist错误

Java 我的Android中类中的Arraylist错误,java,android,Java,Android,我创建了两个类。其中一个与另一个相关: public class SCHOOL { private String schoolid; private String schoolname; private List<STUDENT> students; } //getters and setters for schoolid and schoolname; public void setStudents(List<STUDENT> students) {

我创建了两个类。其中一个与另一个相关:

public class SCHOOL {

private String schoolid;
private String schoolname;
private List<STUDENT> students;

}

//getters and setters for schoolid and schoolname;


public void setStudents(List<STUDENT> students) {
    this.students = students;
}


public List<STUDENT> getStudents() {
    return this.students;
}

public void addStudent(String names, String age) {
    STUDENT student = new STUDENT();
    student.setNames(names);
    student.setAge(age);
    students.add(student);

}


public class STUDENT {

private String names;
private String age;



public String getNames() {
    return names;
}

public void setNames(String names) {
    this.names = names;
}

public String getAge() {
    return age;
}

public void setAge(String age) {
    this.age = age;
}
}
公立学校{
私人字符串学校ID;
私有字符串学名;
私人名单学生;
}
//schoolid和schoolname的获取者和设置者;
公立学校学生(名单学生){
这个。学生=学生;
}
公众学生名单{
把这个还给学生;
}
public void addStudent(字符串名称、字符串年龄){
学生=新生();
学生姓名;
学生年龄;
学生。添加(学生);
}
公立班学生{
私有字符串名称;
私弦时代;
公共字符串getNames(){
返回姓名;
}
公共无效集合名(字符串名){
this.names=名称;
}
公共字符串getAge(){
回归年龄;
}
公共无效设置(字符串期限){
这个。年龄=年龄;
}
}
以下是我的主要课程:

    public class MainActivity extends AppCompatActivity {

    static final String tag = "Tag Activity";
    List<STUDENT> studentList;


    @Override
    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    //setContentView(R.layout.activity_main);

    SCHOOL school = new SCHOOL();
    school.setStudents(studentList);
    List<STUDENT> students = school.getStudents();


    school.addStudent("kent", "43");
    school.addStudent("Winnie", "42");
    school.addStudent("Dennis", "41");

    studentList.add((STUDENT) students);
    Log.d(tag, String.valueOf(studentList));
    .......
public类MainActivity扩展了AppCompatActivity{
静态最终字符串tag=“标记活动”;
学生名单;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
学校=新学校();
学校。学生(学生名单);
List students=school.getStudents();
学校。addStudent(“肯特”,“43”);
学校。addStudent(“Winnie”,“42”);
学校。addStudent(“丹尼斯”,“41”);
学生列表。添加((学生)学生);
Log.d(tag,String.valueOf(studentList));
.......
以下是我在logical中的错误日志:

11-01 21:25:24.348 3049-3049/com.example.spidey.jsontosql W/dalvikvm:threadid=1:线程以未捕获异常退出(组=0xa4cb4b20) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:FATAL EXCEPTION:main 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:Process:com.example.spidey.jsontosql,PID:3049
11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:java.lang.RuntimeException:无法启动活动组件信息{com.example.spidey.jsontosql/com.example.spidey.jsontosql.MainActivity}:java.lang.NullPointerException 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at-android.app.ActivityThread.access$800(ActivityThread.java:135) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at-android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at-android.os.Handler.dispatchMessage(Handler.java:102) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at-android.os.Looper.loop(Looper.java:136) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at-android.app.ActivityThread.main(ActivityThread.java:5001) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at java.lang.reflect.Method.invokenactive(本机方法) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at java.lang.reflect.Method.invoke(Method.java:515) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at dalvik.system.NativeStart.main(本机方法)
11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:由以下原因引起:java.lang.NullPointerException 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at com.example.spidey.jsontosql.SCHOOL.addStudent(SCHOOL.java:50) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at com.example.spidey.jsontosql.MainActivity.onCreate(MainActivity.java:35) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at-android.app.Activity.performCreate(Activity.java:5231) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at-android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at-android.app.ActivityThread.access$800(ActivityThread.java:135) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at-android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at-android.os.Handler.dispatchMessage(Handler.java:102) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at-android.os.Looper.loop(Looper.java:136) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at-android.app.ActivityThread.main(ActivityThread.java:5001) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at java.lang.reflect.Method.invokenactive(本机方法) 11-01 21:25:24.360 3049-3049/com.example.spidey.jsontosql E/AndroidRuntime:at java.lang.reflect.Method.invoke(Method.java:515) 11-01 21:25:24.360 3049-3049/c
studentList.add((STUDENT) students);
for (Student student: studentList) {
    studentList.add(student);
}
school.setStudents(studentList);
`.....
SCHOOL school = new SCHOOL();
school.setStudents(studentList);


school.addStudent("kent", "43");
school.addStudent("Winnie", "42");
school.addStudent("Dennis", "41");

studentList = school.getStudents();;
Log.d(tag, String.valueOf(studentList));
.......`