-
resolve class level anno查看全部
-
resolve anno查看全部
-
use self define anno查看全部
-
Inher查看全部
-
RetentionPolicy查看全部
-
meta anno查看全部
-
注解作用范围,注解的写法查看全部
-
selfdefine anno查看全部
-
selfdefine anot defination查看全部
-
anno classify from source查看全部
-
runtime anno查看全部
-
complie anno查看全部
-
annotation classfication查看全部
-
解析注解 • 使用类加载器加载类(Class.forName) • 获取类上的注解(可以先判断注解是否存在) public boolean isAnnotationPresent(Class<? extends Annotation> paramClass) • 拿到注解实例 public <A extends Annotation> A getAnnotation(Class<A> paramClass) 使用实例获取成员的值(如d.value()) • 获取方法上的注解 通过反射拿到类上的所有方法,返回Method数组 § public Method[] getMethods() 遍历Method数组取得方法上的注解(可以先判断注解是否存在) § public boolean isAnnotationPresent(Class<? extends Annotation> paramClass) 拿到方法上注解的实例 § public <A extends Annotation> A getAnnotation(Class<A> paramClass) 使用实例获取成员的值(如d.value()) • *获取方法上注解也可以使用getAnnotations获取Method数组中的全部注解 public Annotation[] getAnnotations()查看全部
-
自定义注解语法要求 • 使用关键字@interface定义注解 如:public @interface AnnotationDemo{} • 成员以无参无异常的方式声明,可以用default为成员指定的一个默认值 • 成员类型是受限的,只能是原始类型及String,Class,Annotation,Enumeration • 如果注解只有一个成员,则成员名必须为value(),在使用时可以忽略成员名和赋值号(=) • 标识注解:没有成员的注解 • 元注解: @Target:注解的作用域(使用枚举类型ElementType的成员进行标识,可同时指定多个) § ElementType包括:TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE, ANNOTATION_TYPE, PACKAGE, TYPE_PARAMETER, TYPE_USE @Retention:生命周期(使用枚举类型RetentionPolicy的成员进行标识) § RetentionPolicy包括:SOURCE, CLASS, RUNTIME @Inherited:允许子注解继承 @Documented:生成javadoc文档时会包含注解查看全部
举报
0/150
提交
取消