Json 不带setter方法的GWT Autobean
我在GWT应用程序中使用Autobean框架对JSON进行编码/解码。它适用于具有getter和setter的接口的情况。但是有没有其他方法可以做到这一点,而不用指定Json 不带setter方法的GWT Autobean,json,gwt,autobean,Json,Gwt,Autobean,我在GWT应用程序中使用Autobean框架对JSON进行编码/解码。它适用于具有getter和setter的接口的情况。但是有没有其他方法可以做到这一点,而不用指定setThisCollectionProperty而使用addToThisCollectionProperty方法 例如,我有一个界面IPerson,如下所示: public interface IPerson { public String getName(); public void setName(
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);
}
public interface BeanFactory extends AutoBeanFactory {
public AutoBean<IPerson> person();
public AutoBean<IPerson> person(IPerson person);
}
公共接口IPerson{
公共字符串getName();
public void setName(字符串名称);
public int getAge();
公共空间设置(整数);
公共列表getid();
公共void addId(字符串id);
}
BeanFactory是这样的:
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);
}
public interface BeanFactory extends AutoBeanFactory {
public AutoBean<IPerson> person();
public AutoBean<IPerson> person(IPerson person);
}
公共接口BeanFactory扩展了AutoBeanFactory{
公众人物();
公共汽车人(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);
}
}
公共类Person实现IPerson{
私有字符串名称;
私有列表ID;
...
公共列表getIds(){
返回ID;
}
公共void addId(字符串id){
...
添加(id);
}
}
如果将addId(字符串id)
替换为setid(列表id)
,则此功能有效。
否则,将显示以下错误:
com.mycompany.jsonsample.beans.IPerson参数化并不简单,但是person方法不提供委托
是否可以不使用
set
方法进行编码/解码?AutoBean管理所有的getter和setter,并且只管理getter和setter。对于任何其他方法,都必须使用
因此,使用一个类别,您可以将
addId(…)
实现为getIds().add(…)
,或者如果AutoBean
我认为不可能的话,可以直接调用addIds
。按照惯例,java使用setter和getter进行反射。@ChristianAchilli没有办法通过指定该函数要处理的属性来实现这一点吗?我不知道。实际上我不知道你为什么要这样做。从JSON的角度来看,Person应该是DTO。你想做什么?@ChristianAchilli我必须对一些库接口实现的实例进行编码/解码。大多数接口只有getter和setter,但在我的示例中,有些接口有像addId
方法这样的方法,而不是集合setter方法。据我所知,这是不可能的。您的bean需要遵循命名约定。(即getProperty
,setProperty
)。