有没有办法将方法注释传递给 sub-类?

Is there a way to have method annotations passed on to sub-classes?

我在通常被覆盖的方法上使用了一些自定义方法注释。例如,让我们考虑类似 @Async 注释的内容:

public class Base {
  @Async
  public void foo() {
  }
}

有没有办法向编译器发出信号 and/or IDE 方法注释应该跟在方法的重写版本中,这样当有人扩展 Base 并重写 foo(),自动插入 @Async 注释,类似于大多数 IDEs?

自动插入 @Override 的方式

如果没有通用的提示方式,是否有 IntelliJ/Android Studio 特定的方式?

注解被其他注解标记为继承@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();
  }
}