GWT 응용 프로그램에서 JSON을 인코딩/디코딩하기 위해 Autobean 프레임 워크를 사용하고 있습니다. getter 및 setter가있는 인터페이스가있는 경우 작동합니다. 그러나 addToThisCollectionProperty
메서드를 대신 사용하여 setThisCollectionProperty
을 지정하지 않고이 작업을 수행하는 다른 방법이 있습니까?setter 메서드가없는 GWT Autoban
예를 들어,이 같은 인터페이스 IPerson
있습니다
public interface BeanFactory extends AutoBeanFactory {
public AutoBean<IPerson> person();
public AutoBean<IPerson> person(IPerson person);
}
및 IPerson에 구현 Person 클래스에
,public class Person implements IPerson {
private String name;
private List<String> ids;
...
public List<String> getIds() {
return ids;
}
public void addId(String id) {
...
ids.add(id);
}
}
그것을 :
public interface IPerson {
public String getName();
public void setName(String name);
public int getAge();
public void setAge(int age);
public List<String> getIds();
public void addId(String id);
}
의 BeanFactory는 다음과 같이이다 addId(String id)
이로 바뀌면 작동합니다.. 은 그렇지 않으면 다음과 같은 오류가 표시됩니다 :
com.mycompany.jsonsample.beans.IPerson 매개 변수화가 간단하지 않다, 그러나 사람의 방법은
인코딩하는 것이 가능 대리자를 제공하지 않습니다/set
메서드없이 디코딩 하시겠습니까?
나는 그것이 가능하지 않다고 생각합니다. 관습에 따라 Java는 setter와 getter를 리플렉션에 사용합니다. –
@ChristianAchilli는 해당 함수로 처리 할 속성을 지정하여이를 수행 할 수있는 방법이 없습니까? –
아니야. 사실 내가 왜 이걸하고 싶은지 잘 모르겠다. Person은 JSON 관점에서 DTO가되어야한다. 너 뭐하려고? –