我在通常被覆盖的方法上使用了一些自定义方法注释。例如,让我们考虑类似 @Async
的内容。注解:
public class Base {
@Async
public void foo() {
}
}
有没有办法向编译器和/或 IDE 发出信号,表明方法注释应该遵循方法的覆盖版本,以便当有人扩展
Base
时并覆盖 foo()
, @Async
注释会自动插入,类似于 @Override
大多数 IDE 会自动插入吗?如果没有暗示这一点的一般方法,是否有特定于 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();
}
}
关于java - 有没有办法将方法注释传递给子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59712403/