CompoundPropertyModel Wicket - 对象图

时间:2012-07-22 08:45:18

标签: wicket compound-key

我想在Wicket中使用CompoundPropertyModel来创建用户。

我的用户类如下所示:

    public class User {
      private String username;
      ...
      private Address address;
      ...
     }

    public class Address{
      private String street;
      ...
     }

如果我尝试通过User的复合属性模型访问地址的街道,我会得到一个nullpointerexception,当然:“user.address.street”。所以我必须事先自己实例化“地址”这个类。是否有更优雅的方式来动态实例化成员字段?

谢谢

1 个答案:

答案 0 :(得分:3)

如果用户必须拥有地址,则应在用户的构造函数中创建Address实例。否则,您可以在getAddress()方法中执行空检查,如果它为null,则创建一个新实例...

public Address getAddress() {
    if (address == null) {
        address = new Address();
    }

    return address;
}