我知道注解既不能被继承,子类也不能包含父级注解。但是,我有一个简单的场景。假设,我有 N 个类,例如 A、B、C、D……N。
A 是父类(super class),B、C、D....N 是子类,即 A 的子类。因此,如果我需要继承这些类,我需要按以下方式进行:
class B extends A {
//code
}
class C extends A {
//code
}
......
class N extends A {
//code
}
所以我需要手动扩展 A 类 N 次。
现在,我的问题是我不能创建一个类似注释的 @ParentIsClassA 子级类通过它自动扩展类 A 吗?
我要实现的示例代码如下:
@ParentIsClassA
class B {
//code
}
@ParentIsClassA
class N {
//code
}
最佳答案
注释通常不能修改 Java 中类的编译。 (Lombok 使用特殊且脆弱的编译器 Hook ;Groovy AST 可以完成您所说的。)
也就是说,为什么?您仍然必须像 extends
子句一样插入该注释,然后您会遇到诸如 IDE 不理解这些关系的问题。只需使用正常的继承,不要混淆您的工具和其他程序员。
您可能还对 the @Inherited
meta-annotation 感兴趣.
关于java - Java8中带注解的继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39137593/