是否有任何工具/脚本/方法可以从 Java bean 类自动生成覆盖类型?例如,通过在字段/getter 上添加注释,可能使用标准 JAXB 注释,如 @XmlElement
这里有一个重复的主题:Generate GWT Overlay types from Java objects,但是那里没有回答这个问题。唯一的答案是使用 Protostuff,这并不是我想要的。
是否有任何工具/脚本/方法可以从 Java bean 类自动生成覆盖类型?例如,通过在字段/getter 上添加注释,可能使用标准 JAXB 注释,如 @XmlElement
这里有一个重复的主题:Generate GWT Overlay types from Java objects,但是那里没有回答这个问题。唯一的答案是使用 Protostuff,这并不是我想要的。
你为什么要覆盖类型?你想使用 JSON(P) 而不是 RPC 吗?我在 RPC 层中使用 JAXB 注释对象,这样我就不需要对象的 2 个版本。RPC 速度慢且难以加载测试,所以在这种情况下,我可以理解您想要采用覆盖方式。我在一些影响很大的地方做这件事。
至于 Overlay Types 文档是最新的,生成器不可能生成 Overlay Type 实现。
它说:
GWT 1.5 中覆盖类型的实现不支持定义新 JSO 子类型的生成器(由于在后续编译期间需要重新定义或以其他方式扩展 JavaScriptObject$)。这个限制仍然存在。
http://code.google.com/p/google-web-toolkit/wiki/OverlayTypes
最后我找到了一种方法来做到这一点,虽然它只是半自动化的。在 Eclipse 中,您可以像这样创建代码模板(Window / Preferences / Java / Editor / Templates):
public final native ${type:var} get${nameCamelCase:var}() /*-{
return this.${name:var};
}-*/;
public final native void set${nameCamelCase}(${type} ${name}) /*-{
this.${name} = ${name};
}-*/;
并给它起一个名字,比如“get”。然后在任何 GWT 编辑器中,您应该键入“get”并按 Ctrl+Space,然后按 Enter。