我在尝试从其他对象的ArrrayList中检索属性时遇到了一些麻烦... 这就是这个想法:
我有一个具有String“name”属性的类Guest:
Guest guest01 = new Guest("Andrew");
Guest guest02 = new Guset("john");
ArrayList<Guest> list = new ArrayList();
我有一个使用ArrayList of Guests属性预订的课程:
Booking booking = new Booking(list);
现在我想检索每个名字,所以我尝试过:
for(Guest guest : booking.getList())
{
System.out.println(guest.getName());
}
并尝试:
Iterator it=booking.getList().iterator();
while(it.hasNext()){
Object objet = it.next();
Guest g = (Guest)objeto;
System.out.println(g.getDNI());
}
在这两种情况下,我得到一个: 线程“AWT-EventQueue-0”中的异常java.lang.NullPointerException
预订预订=新预订();
答案 0 :(得分:0)
我假设Booking.getList()返回null。你是否在构造函数中使用'this'来将列表分配给字段?
public class Booking {
private List<Guest> list;
public Booking(List<Guest> list) {
this.list = list; // Using of this
}
public List<Guest> getList() {
return list;
}
}
答案 1 :(得分:0)
我们能看到Booking课程中发生了什么吗? 更好的创建对象的方法是,通过验证创建属性。
更糟糕的做法是:
Booking booking = new Booking(list);
良好做法是:
Booking booking = new Booking();
booking.add(list); //in add method you should have validation,like instanceOf ...
尝试调试您的代码,并与我们分享结果。