为什么GWT使用代码生成器而不是注释处理器?

时间:2015-01-15 05:39:27

标签: java gwt code-generation annotation-processing

GWT使用带有GWT.create()命令的代码生成器来生成实现。这提供了一种在GWT中做事的声明性方式,但我不明白为什么没有像大多数java那样使用注释处理器。this article是原始让我想到的。看起来它会简化构建并让你看到你的编译时错误,并且与常规java更加兼容。这是一个侧面问题,但我是唯一一个认为GWT应该支持反思的人。我听说这会使代码变慢但仍然如此。在某些情况下不值得吗?

1 个答案:

答案 0 :(得分:3)

GWT是在注释甚至存在于Java语言/平台(Java 1.4)之前创建的,这就是原因。

新开发倾向于倾向于注释处理,并且它最终将作为SuperDevMode重新编译的一部分得到支持(您当前必须运行注释处理器并让SDM选择-modified生成的源);一个例子是Dagger 2 但是,我不认为这种方法适用于目前在GWT中使用发电机的所有情况。

对于GWT.create()替换为延迟绑定


至于反射,它不是关于“慢”,而是关于需要嵌入到生成的JS代码中以支持运行时反射的元数据。鉴于编译时所有内容都是已知的,运行时几乎不需要反射;您通常可以使用编译时生成的代码作为运行时反射的替代。所以不,这不值得。