使用纯 GWT 序列化 POJO

Serialize POJO with Pure GWT

我的代码可能有什么问题:

String serializeToJson(MyModel model) {
    // Retrieve the AutoBean controller
    AutoBean<MyModel> bean = AutoBeanUtils.getAutoBean(model);
    return AutoBeanCodex.encode(bean).getPayload();
}

即使模型对象不为 null 并且 values/fields 已设置。返回的 Stringnull.

Autobeans 使用接口, 声明getter 和setter 方法。虽然您可以创建该 class 的具体实例,但它没有 AutoBean<MyModel> 表示,因此您无法获得神奇的序列化,至少不容易。

不是神奇的 DWIM 序列化工具 - 它是一种描述看起来像 Java 对象但得到最合理支持的数据的方法为您的用例。 Java 对象可以实现的事情(比如对象中的循环、多态性等)在 AutoBeans 中是不可能的,它们根本就不是为它设计的,如果有的话,它们的设计目的是 not 能够做到这一点。

检查上面代码中 AutoBeanUtils.getAutoBean 的结果 - 它可能返回 null,因为 MyModel 实例中没有 AutoBean

请参阅 GWT AutoBean with POJO class instead of interface for another discussion around this question, and http://www.gwtproject.org/doc/latest/DevGuideAutoBeans.html 了解如何正确使用 autobeans。