在Java8中使用注释进行继承

时间:2016-08-25 05:51:07

标签: java inheritance annotations

我知道注释既不能被继承,也不能被子类包含父级注释。但是,我有一个简单的场景。假设我有N个类,如A,B,C,D ...... N.
A是超类,B,C,D ...... N是子类,也就是A.So的子类,如果我需要继承这些这些类,我需要按照以下方式进行:

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
}

1 个答案:

答案 0 :(得分:3)

注释通常无法在Java中修改类的编译。 (Lombok使用特殊且易碎的编译器钩子; Groovy AST可以做你正在谈论的事情。)

那说,为什么?您仍然必须像extends子句一样插入该注释,然后您就会遇到IDE无法理解关系的问题。只需使用普通继承,不要混淆你的工具和其他程序员。

您可能也对the @Inherited meta-annotation感兴趣。