我想在Wicket中使用CompoundPropertyModel来创建用户。
我的用户类如下所示:
public class User {
private String username;
...
private Address address;
...
}
public class Address{
private String street;
...
}
如果我尝试通过User的复合属性模型访问地址的街道,我会得到一个nullpointerexception,当然:“user.address.street”。所以我必须事先自己实例化“地址”这个类。是否有更优雅的方式来动态实例化成员字段?
谢谢
答案 0 :(得分:3)
如果用户必须拥有地址,则应在用户的构造函数中创建Address实例。否则,您可以在getAddress()方法中执行空检查,如果它为null,则创建一个新实例...
public Address getAddress() {
if (address == null) {
address = new Address();
}
return address;
}