注解

84 阅读1分钟

作用

可以看作是一种特殊的注释,主要用于修饰类、方法或者变量,提供某些信息供程序在编译或者运行时使用

自定义注解

public @interface Book {
    String value(); // 特殊属性
    double price();
}

元注解

修饰自定义注解

@Target:生效范围

@Retention:生效时间

@Target({ElementType.METHOD,ElementType.FIELD}) // 只在方法和成员变量上使用
@Retention(RetentionPolicy.RUNTIME) // 一直活着,在运行阶段这个注解也不消失
public @interface MyTest {
}

注解解析

获取放在类注解的相关信息 c.getDeclaredAnnotation(Bookk.class)

   @Test
   public void parseClass(){
       // a.先得到类对象
       Class c = BookStore.class;
       // b.判断这个类上面是否存在这个注解
       if(c.isAnnotationPresent(Bookk.class)){
           //c.直接获取该Bookk注解对象
           Bookk book = (Bookk) c.getDeclaredAnnotation(Bookk.class);
           System.out.println(book.value());
           System.out.println(book.price());
           System.out.println(Arrays.toString(book.author()));
       }
   }

    @Bookk(value = "《情深深雨濛濛》", price = 99.9, author = {"琼瑶", "dlei"})
    class BookStore{

}

查看是否有MyTest这个注解

method.isAnnotationPresent(MyTest.class)