1

GWT アプリケーションで JSON をエンコード/デコードするために Autobean フレームワークを使用しています。ゲッターとセッターを持つインターフェイスの場合に機能します。しかし、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 はすべてのゲッターとセッターを管理し、ゲッターとセッターのみを管理します。他の方法では、カテゴリを使用する必要があります。

addId(…)カテゴリを使用すると、 as として実装できます。また、が wrapperの場合は、基になるオブジェクトgetIds().add(…)を直接呼び出すこともできます。addIdsAutoBean

于 2013-02-27T13:51:25.133 に答える