包 java.lang.annotation。所有注解继承自接口java.lang.annotation.Annotation,并且是自动继承,不需要定义时指定。
该包同时定义了 四个元注解,Documented,Inherited,Target(作用范围,方法,属性,构造方法等),Retention(生命范围,源代码,class,runtime)
Inherited: 在您定义Annotation型态后并使用于程序代码上时,预设上父类别中的Annotation并不会被继承至子类别中,您可以在定义 Annotation时
加上java.lang.annotation.Inherited的Annotation,这让您定义的Annotation型别被继承下来。注意注解继承只针对class 级别注解有效
例如:
package onlyfun.caterpillar;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Inherited;
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface Debug {
String value();
String name();
}
在下面这个程序中使用它:
package onlyfun.caterpillar;
@Debug( value = "unit", name = "debug1" ) //该注解可以被子类读取到
public class SomeObject {
@Debug( value = "unit", name = "debug1" ) //子类如果重写该方法,将不继承该注解
public void doSomething() { // .... }
}
|