是否可以为生成覆盖类父类方法的方法的类编写Java注释?
在我的情况下,我想在android中执行:
@OverrideOnTouch
class Foo extends Activity {
它将在编译时生成onTouch覆盖方法。
有可能吗?
答案 0 :(得分:4)
注释无法生成代码。
你可以编写一个注释处理器,它在编译时添加了一个方法,无论它找到你的注释。
以下是关于此主题的教程:
但是,请注意编写注释处理器是一项重要的Java编码工作。另请注意,注释处理器(使用AnnotationProcessor
API实现并通过Java编译器调用)无法修改Java源代码。它只能生成新的“.java”文件。
因此,如果要将新方法注入现有类,则需要编译该类,然后使用使用BCEL或等效项的后编译注释处理器将所需方法添加到“.class”编译器生成的文件。实现基于BCEL的处理器......更难。升级Java时,这类处理器有崩溃的趋势。 (很容易对相关规范不支持的JVM /字节码级实现做出假设......当平台发生变化时,不再“工作”。)
本问题的一些答案中提到了这种方法: