有没有办法让类继承超类的注释?
e.g。
@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 ? */
}
答案 0 :(得分:19)
如果您自己定义注释类,则可以使用@Inherited元注释:
表示自动继承注释类型。如果注释类型声明中存在Inherited元注释,并且用户在类声明上查询注释类型,并且类声明没有此类型的注释,则将自动查询类的超类以获取注释类型。
答案 1 :(得分:8)
答案 2 :(得分:4)
注释不会被继承。但是使用注释(在本例中为EJB3)的框架可以选择在类层次结构中导航以查看它是否存在于超类中。
查看javadoc of this annotation:它具有inherited
属性,精确地指示此注释是否也应该应用于子类。
答案 3 :(得分:3)
类子注释不能由子类继承,但非私有非构造函数成员方法和字段上的注释与它们关联的方法/字段一起被继承。因此,您可以尝试使用它们来达到预期的效果。
答案 4 :(得分:1)
当一个类标记有一个注释,该注释本身用java.lang.annotation.Inherited注释时,您可以请求该类上的注释,并且继承的注释应该显示在结果中。
ApplicationException未标记为Inherited。好吧。