java-注解

1.元注解
@Target 注解适用目标

ElementType.TYPE 类 接口 枚举等
ElementType.METHOD 方法
ElementType.FIELD 变量
@Retention 保留策略
RetentionPolicy.SOURCE    注解将被编译器丢弃
RetentionPolicy.CLASS        注解在class文件中保留,但会被VM丢弃
RetentionPolicy.RUNTIME  VM将在运行期保留注解,即可以通过反射读取到注解
@Document
将此注解包含在生成的javadoc中
@Inherited
默认情况下父类某个地方使用了一个注解,不会被继承到子类对应的地方,如果在注解上加上@Inherited,就会被继承到子类。

2.注解的定义
1)注解声明 @interface 注意元素后的括号

@Target(ElementType.METHOD)
public @interface wdwtest {
    public int id();
    public String description() default "no description";
}

2)注解的默认值必须为确定的值  不可以为null
3)使用getAnnotation方法可以获取到注解

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@interface TestAnnotation{
    String des();
}
@TestAnnotation(des = "1111")
class TestClass{
    
}
public class Wdwtest{
    public static void main(String[] args){
        Class<?> c = TestClass.class;
        TestAnnotation ann = (TestAnnotation) c.getAnnotation(TestAnnotation.class);
        System.out.println(ann.des());
    }
}

猜你喜欢

转载自my.oschina.net/dajianguo/blog/1823692