继承类注释

Luk*_*uke 17 java annotations ejb-3.0

有没有办法让类继承超类的注释?

例如

@ApplicationException(rollback=true)
public abstract class AbstractBeanActionException extends Exception {
    /* method body is simply calls to super() */
}

public class OrderBeanException extends AbstractBeanActionException {
    /* does this class have to be annotated as well ? */
}
Run Code Online (Sandbox Code Playgroud)

And*_*ich 21

如果您自己定义注释类,则可以使用@Inherited元注释:

表示自动继承注释类型.如果注释类型声明中存在Inherited元注释,并且用户在类声明上查询注释类型,并且类声明没有此类型的注释,则将自动查询类的超类以获取注释类型.

  • 上述链接文档的重要警告:请注意,如果使用带注释的类型来注释除类之外的任何内容,则此元注释类型无效.另请注意,此元注释仅导致注释从超类继承; 已实现接口上的注释无效. (4认同)

Luc*_*sio 9

子类不能继承类注释.

你可以做的是"强制"子类在编译时使用注释:

https://community.oracle.com/docs/DOC-983563


JB *_*zet 6

注释不继承。但是使用注释的框架(在本例中为EJB3)可以选择在类层次结构中导航以查看其是否存在于超类中。

查看此注释javadoc:它具有一个inherited属性,恰好指示此注释是否也应应用于子类。


Pét*_*rök 5

类注解不能被子类继承,但非私有非构造函数成员方法和字段上的注解以及它们关联的方法/字段可以继承。所以你可以尝试使用这些来达到你想要的效果。