我在 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,所以也许这是一个值得 Google 解决的错误。另一方面,也许我做错了什么,或者这是明确不支持的。
我希望有人对此有一些经验,或者 BobV 有一个建议:)