2012-07-22 3 views
0

Wicket에서 CompoundPropertyModel을 사용하여 사용자를 만들고 싶습니다.CompoundPropertyModel Wicket - 객체 그래프

내 사용자 클래스는 다음과 같습니다

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

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

I은 ​​사용자 compoundproperty 모델을 통해 주소의 거리에 액세스하려고하면, 나는 물론, NullPointerException가 얻을 : "user.address.street을". 그래서 나는 사전에 "Address"라는 클래스를 인스턴스화해야한다. 동적으로 멤버 필드를 인스턴스화하는 좀 더 우아한 방법이 있습니까?

감사

답변

3

을 사용자가 주소를 사용해야하는 경우, 당신은 사용자에 대한 생성자에서 주소의 인스턴스를 생성해야합니다. 그렇지 않으면 getAddress() 메소드에서 null 체크를 수행하고 null 인 경우 새 인스턴스를 만들 수 있습니다 ...

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

    return address; 
} 
관련 문제