在对象列表中添加对象(ArrayList)!

时间:2012-02-12 21:08:29

标签: java arraylist

我有三节课。 1.Class:`

public class Handler {

private String name;
private String short_name;
private int semester; 
private int modul_number; 

private String prof; 
private int credits; 
private double note; 
private ArrayList<Handler_date> dates;



public Handler() {

}

public Handler(String _name, String _short_name, int _semester, int _modul_number,
         String _prof, int _credits, double _mark) {
    this.modul_number=_modul_number;
    this.name = _name;
    this.short_name = _short_name;
    this.semester = _semester;
    this.prof = _prof;
    this.credits = _credits;
    this.note= _mark;
    dates = new ArrayList<Handler_date>();

}

public void add_date(String _room, int _time, 
        String _day) {
    Handler_date temp = new Handler_date(_room, _time, 
            _day);
    dates.add(temp);
}`

和2.class(Elementclass):

`public class Handler_date {

private String room; 
private int time; 
private String day; 

public Handler_date() {
}

public Handler_date(String _room, int _time, 
        String _day) {
    this.room = _room;
    this.time = _time;
    this.day = _day;
}

}

我想添加一个模块,但我得到dates.add(temp);

的NullPointerException

我用templist.search_modul_number(modulnumber).add_date("room", 1, "monday");

调用方法

我的处理程序 - 对象保存在一个额外的Objectlist /类中,保存到arrayList ... private ArrayList<Handler> handlerlist; 谁知道我做错了什么?

谢谢!

3 个答案:

答案 0 :(得分:2)

您很可能没有初始化private ArrayList<Handler_date> dates;

Handler有一个no-args构造函数,它不会创建列表。

将其更改为:

public Handler() {
    dates = new ArrayList<Handler_date>();
}

答案 1 :(得分:1)

您的日期arraylist未初始化。它为null,因此您会收到此异常。

你在调用新的Handler(); - 在该构造函数中,您不会初始化日期。

将来,请附上完整的堆栈跟踪以获取帮助。

答案 2 :(得分:0)

您的dates字段未初始化。可能是因为您使用no-arg构造函数创建了Handler实例。