列表<列表<myenum>&GT;在AutoBeanFactory </list <myenum>中

时间:2011-04-13 15:01:02

标签: gwt requestfactory autobean

我在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有一个建议:)

1 个答案:

答案 0 :(得分:1)

在GWT 2.2分支后,添加了对任意参数化集合的序列化的支持。这应该在2.3版本分支或主干上工作。