首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不带setter方法的GWT Autobean

不带setter方法的GWT Autobean
EN

Stack Overflow用户
提问于 2013-02-27 10:56:27
回答 1查看 810关注 0票数 1

我使用Autobean框架在我的GWT应用程序中编码/解码JSON。它适用于具有getter和setter的接口。但是,有没有其他方法可以做到这一点,而不用使用setThisCollectionProperty方法来指定addToThisCollectionProperty呢?

例如,我有一个像这样的接口IPerson

代码语言:javascript
复制
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是这样的:

代码语言:javascript
复制
public interface BeanFactory extends AutoBeanFactory {

    public AutoBean<IPerson> person();

    public AutoBean<IPerson> person(IPerson person);


}

在实现IPerson的Person类中,

代码语言:javascript
复制
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方法的情况下,有可能编码/解码吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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 是一个包装器 )。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15110296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档