我在通常被覆盖的方法上使用了一些自定义方法注释。例如,让我们考虑类似@Async
的注解:
public class Base {
@Async
public void foo() {
}
}
有没有一种方法可以向编译器和/或IDE发出信号,方法注释应遵循方法的重写版本,以便当有人扩展Base
并覆盖foo()
时,{{ 1}}注释会自动插入,就像大多数IDE自动插入@Async
一样?
如果没有通用的提示方式,是否有IntelliJ / Android Studio特定的方式?
答案 0 :(得分:3)
如果注释带有其他注释@Inherited
,则该注释将被继承。因此,如果您作为示例给出的注释@Async
是您的注释,请执行以下操作:
@Inherited
// other annotations (e.g. Retention, Target etc)
@interface Async {
}
如果这不是您的注释,则使它在子类中可见的唯一方法是在该子类中创建foo()
的简单实现,并用此注释标记该方法,例如
public class Base {
@Async
public void foo() {
}
}
public class Child extends Base {
// Trivial implementation needed only to make the annotation available here.
@Async
public void foo() {
super.foo();
}
}