繁体   English   中英

如何从对象的ArrayList获取对象属性

[英]How to get an Object property from an ArrayList of Objects

我在尝试从其他对象的ArrrayList检索属性时遇到了一些麻烦...这是个主意:

我有一个带有字符串“名称”属性的Guest类:

Guest guest01 = new Guest("Andrew"); 
Guest guest02 = new Guset("john");
ArrayList<Guest> list = new ArrayList();   

而且我有一个Booking类,其中有一个ArrayList of Guest属性:

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

预订预订=新的Booking();

我假设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;
  }
}

我们可以看到预订类中发生了什么吗? 创建对象的更好方法是通过验证创建属性。

更糟糕的做法是这样的:

Booking booking = new Booking(list);

好的做法是:

Booking booking = new Booking();

booking.add(list); //in add method you should have validation,like instanceOf ...

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM