1

我正在使用 Autobean 框架在我的 GWT 应用程序中编码/解码 JSON。它适用于具有 getter 和 setter 的接口的情况。setThisCollectionProperty但是有没有办法在不指定 a而不是使用方法的情况下以其他方式做到这一点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

4

1 回答 1

2

AutoBean 管理所有的 getter 和 setter,并且只管理 getter 和 setter。对于任何其他方法,您必须使用category

使用类别,您可以因此实现addId(…)as ,或者如果是 wrappergetIds().add(…)则可能直接调用addIds底层对象AutoBean

于 2013-02-27T13:51:25.133 回答