如何从Objects的ArrayList获取Object属性

时间:2015-10-05 10:03:01

标签: java arraylist

我在尝试从其他对象的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

预订预订=新预订();

2 个答案:

答案 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 ...

尝试调试您的代码,并与我们分享结果。