【发布时间】:2017-07-08 00:31:06
【问题描述】:
是否可以为生成覆盖类父方法的方法的类编写Java注解?
就我而言,我想在 android 中进行:
@OverrideOnTouch
class Foo extends Activity {
它会在编译时生成一个onTouch覆盖方法。
有可能吗?
【问题讨论】:
标签: java android annotations java-annotations
是否可以为生成覆盖类父方法的方法的类编写Java注解?
就我而言,我想在 android 中进行:
@OverrideOnTouch
class Foo extends Activity {
它会在编译时生成一个onTouch覆盖方法。
有可能吗?
【问题讨论】:
标签: java android annotations java-annotations
注解不能生成代码。
您可以编写一个注解处理器,在编译时添加一个方法,只要它找到您的注解。
这里有一个关于这个主题的教程:
但是,请注意,编写注释处理器是大量 Java 编码工作。另请注意,注解处理器(使用AnnotationProcessor API 实现并通过Java 编译器调用)不能修改Java 源代码。它只能生成新的“.java”文件。
因此,如果您想将新方法注入现有类,则需要编译该类,然后使用使用 BCEL 或等效的编译后注释处理器将所需的方法添加到“.class”编译器生成的文件。实现基于 BCEL 的处理器……更难。当您升级 Java 时,此类处理器往往会出现故障。 (很容易对相关规范不支持的 JVM / 字节码级别实现做出假设......并且在平台更改时不再“工作”。)
这个问题的一些答案中提到了这种方法:
【讨论】: