@inherited注解的作用
时间: 2023-08-31 12:09:35 浏览: 151
@inherited注解是Java语言中的一种元注解,用于指示子类是否继承父类上的注解。当一个父类被@Inherited注解过的注解进行注解时,如果它的子类没有被任何注解应用,则子类会继承父类上的注解。
具体来说,如果一个注解被@Inherited注解,则当使用该注解来注解一个类时,该注解会被自动继承到该类的子类中。但是,需要注意的是,@Inherited注解仅适用于类级别的注解,对于方法、字段等其他元素的注解是不起作用的。
以下是一个示例代码,演示了使用@Inherited注解来指示子类继承父类上的注解:
```
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation {
String value();
}
@MyAnnotation("parent class")
class Parent {
// ...
}
class Child extends Parent {
// ...
}
public class Main {
public static void main(String[] args) {
MyAnnotation annotation = Child.class.getAnnotation(MyAnnotation.class);
System.out.println(annotation.value()); // Output: parent class
}
}
```
在这个例子中,@MyAnnotation注解被@Inherited注解,这意味着当Parent类被@MyAnnotation注解时,Child类也会继承@MyAnnotation注解。在Main类中,我们使用反射获取Child类上的@MyAnnotation注解,并输出其值。由于Child类继承了@MyAnnotation注解,因此输出的结果是"parent class"。
阅读全文