获取注解信息

2019-06-28 16:30:56 浏览数 (1)

获取注解信息

新建一个注解

代码语言:javascript复制
import java.lang.annotation.*;

@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.METHOD,ElementType.FIELD})
public @interface MyAnnotation {
    String value() default "hejiaxuan";
}

新建一个class

代码语言:javascript复制
@MyAnnotation
public class OneClass {

    @MyAnnotation
    public String name;

}

获取class上的注解

代码语言:javascript复制
//获取类上的所有的注解
Annotation[] annotations = OneClass.class.getAnnotations();
//根据类型获取注解
MyAnnotation annotation = OneClass.class.getAnnotation(MyAnnotation.class);
//获取本类的注解(忽略继承)
Annotation[] annotations = TwoClass.class.getDeclaredAnnotations();

获取属性上的注解

代码语言:javascript复制
//根据类型获取属性上的注解
Field name = OneClass.class.getField("name");
MyAnnotation annotation = name.getAnnotation(MyAnnotation.class);
//获取属性上的所有注解
Annotation[] annotations = name.getAnnotations();

其他的获取注解的方法类似

0 人点赞