我使用Autobean框架在我的GWT应用程序中编码/解码JSON。它适用于接口有getter和setter的情况。但有没有办法做到这一点,但没有指定setThisCollectionProperty
而是使用addToThisCollectionProperty
方法?GWT Autobean没有setter方法
例如,我有一个接口IPerson
这样的:
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是这样的:
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);
}
}
它如果将addId(String id)
替换为,则适用。 否则示出了以下错误:
的com.mycompany.jsonsample.beans.IPerson参数并不简单,但人方法不提供委托
是否有可能以编码/解码没有set
方法?
我不认为这是可能的。按照惯例,java使用setters和getters来进行反射。 – 2013-02-27 11:16:44
@ChristianAchilli没有办法通过指定要用该函数处理的属性来完成它吗? – 2013-02-27 11:21:00
不是我所知道的。其实我不确定你为什么要这样做。 Person应该是JSON视角的DTO。你想做什么? – 2013-02-27 11:54:37