0

是否可以为生成覆盖类父方法的方法的类编写 Java 注释?

就我而言,我想在android中做到这一点:

@OverrideOnTouch class Foo extends Activity {

它会在编译时生成一个 onTouch 覆盖方法。

可能吗?

4

1 回答 1

4

注释不能生成代码。

可以编写一个注解处理器,在编译时添加一个方法,只要它找到您的注解。

这是有关此主题的教程:

但是,请注意,编写注释处理器是大量 Java 编码工作。另请注意,注释处理器(使用AnnotationProcessorAPI 实现并通过 Java 编译器调用)不能修改 Java 源代码。它只能生成新的“.java”文件。

因此,如果要将新方法注入现有类,则需要编译该类,然后使用使用 BCEL 或等效的编译后注释处理器将所需的方法添加到由生成的“.class”文件中编译器。实现基于 BCEL 的处理器……更难。当您升级 Java 时,此类处理器往往会出现故障。(很容易对相关规范不支持的 JVM / 字节码级别实现做出假设......并且在平台发生变化时不再“工作”。)

这个问题的一些答案中提到了这种方法:

于 2017-02-18T13:52:37.630 回答