我使用Autobean框架在我的GWT應用程序中編碼/解碼JSON。它適用於接口有getter和setter的情況。但有沒有辦法做到這一點,但沒有指定setThisCollectionProperty
而是使用addToThisCollectionProperty
方法?GWT Autobean沒有setter方法
例如,我有一個接口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)
替換爲,則適用。 否則示出了以下錯誤:
的com.mycompany.jsonsample.beans.IPerson參數並不簡單,但人方法不提供委託
是否有可能以編碼/解碼沒有set
方法?
我不認爲這是可能的。按照慣例,java使用setters和getters來進行反射。 – 2013-02-27 11:16:44
@ChristianAchilli沒有辦法通過指定要用該函數處理的屬性來完成它嗎? – 2013-02-27 11:21:00
不是我所知道的。其實我不確定你爲什麼要這樣做。 Person應該是JSON視角的DTO。你想做什麼? – 2013-02-27 11:54:37