我使用Autobean框架在我的GWT应用程序中编码/解码JSON。它适用于具有getter和setter的接口。但是,有没有其他方法可以做到这一点,而不用使用setThisCollectionProperty方法来指定addToThisCollectionProperty呢?
例如,我有一个像这样的接口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)替换为setIds(List<String> ids),则工作正常。否则,将显示以下错误:
com.mycompany.jsonsample.beans.IPerson参数化并不简单,但person方法没有提供委托。
在不使用set方法的情况下,有可能编码/解码吗?
发布于 2013-02-27 13:51:25
AutoBean管理所有的getter和setter,并且只管理getter和setter。对于任何其他方法,您必须使用https://code.google.com/p/google-web-toolkit/wiki/AutoBean#Categories。
使用一个类别,您可以将addId(…)实现为getIds().add(…),也可以直接调用底层对象上的addIds (如果AutoBean 是一个包装器 )。
https://stackoverflow.com/questions/15110296
复制相似问题