我在RequestFactory之外使用AutoBeanFactory来将对象转换为JSON和从JSON转换对象。它工作得很好,但我刚刚添加了一种Object,它使用NullPointerException来破坏Codex,我不知道为什么。
我正在使用GWT 2.2.0。
对象类:
public interface Policy
{
public List<List<MyEnum>> getListsOfEnums();
public void setListsOfEnums(List<List<MyEnum>> listOfLists);
}
工厂类:
public interface MyAutoBeanFactory extends AutoBeanFactory
{
public AutoBean<Policy> policy();
}
当我调用AutoBeanCodex.encode(anInstanceOfAnImplementationOfPolicy)
时,我得到一个NullPointerException:
Caused by: java.lang.NullPointerException
at com.google.gwt.autobean.shared.AutoBeanCodex$Encoder.encodeToStringBuilder(AutoBeanCodex.java:407)
at com.google.gwt.autobean.shared.AutoBeanCodex$Encoder.visitCollectionProperty(AutoBeanCodex.java:310)
at com.activegrade.shared.data.overallgradingpolicy.OverallGradingPolicyAutoBean.traverseProperties(OverallGradingPolicyAutoBean.java:264)
at com.google.gwt.autobean.shared.impl.AbstractAutoBean.traverse(AbstractAutoBean.java:153)
at com.google.gwt.autobean.shared.impl.AbstractAutoBean.accept(AbstractAutoBean.java:112)
at com.google.gwt.autobean.shared.AutoBeanCodex.encodeForJsoPayload(AutoBeanCodex.java:546)
at com.google.gwt.autobean.shared.AutoBeanCodex.encode(AutoBeanCodex.java:537)
... (my code)
似乎AutoBeanCodex应该再次调用visitCollectionProperty,所以这可能是一个值得谷歌问题的bug。另一方面,也许我做错了,或明确表示不支持。
我希望有人对此有一些经验,或者BobV有一个建议:)
答案 0 :(得分:1)
在GWT 2.2分支后,添加了对任意参数化集合的序列化的支持。这应该在2.3版本分支或主干上工作。