我的代码有什么问题:
String serializeToJson(MyModel model) {
// Retrieve the AutoBean controller
AutoBean<MyModel> bean = AutoBeanUtils.getAutoBean(model);
return AutoBeanCodex.encode(bean).getPayload();
}
即使模型对象不为null,也会设置值/字段。返回的String
为null
。
答案 0 :(得分:1)
Autobeans使用接口,仅声明getter和setter方法。虽然您可以创建该类的具体实例,但它没有AutoBean<MyModel>
表示,因此您无法获得神奇的序列化,至少不容易。
这不是不是神奇的DWIM序列化工具 - 它是一种描述看起来像Java对象的数据的方法,但是由对您的用例最有意义的任何内容提供支持。 AutoBeans无法实现Java对象可能发生的事情(例如对象中的循环,多态等),它们根本不是为它而设计的,如果它们被设计为不能够这样做。
检查上面代码中AutoBeanUtils.getAutoBean
的结果 - 它可能会返回null
,因为AutoBean
实例中没有MyModel
。
请参阅GWT AutoBean with POJO class instead of interface以了解有关此问题的其他讨论,并http://www.gwtproject.org/doc/latest/DevGuideAutoBeans.html了解如何正确使用自动转播。