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

t1rydlwq  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(408)

gwt使用带有gwt.create()命令的代码生成器来生成实现。这提供了一种在gwt中做事情的声明性方法,但我不明白为什么不能像大多数java那样使用注解处理器。它似乎可以简化构建,让您看到编译时错误,并与常规java兼容得多。这是一个附带的问题,但我是唯一一个认为gwt应该支持反思的人吗。我听说这会使代码变慢,但仍然是。在某些情况下不值得吗?

8nuwlpux

8nuwlpux1#

gwt是在java语言/平台(java1.4)中甚至存在注解之前创建的,这就是原因。
尽管新的开发倾向于注解处理,但它最终将作为superdevmode重新编译的一部分得到支持(您当前必须运行注解处理器,并让sdm选择修改后生成的源代码);匕首2就是一个例子。
但是,我不认为这种方法适用于gwt中当前使用发电机的所有情况。
至于 GWT.create() ,对于替换为延迟绑定的情况仍然需要/有用。
至于反射,它不是关于“慢度”,而是关于需要嵌入到生成的js代码中以支持运行时反射的元数据。不过,考虑到编译时所有内容都是已知的,所以在运行时几乎不需要反射;通常可以使用编译时生成的代码来替代运行时反射。所以不,这不值得。

相关问题