其实很简单,搜下例子,看看API就搞定
中间的一个问题是忘记给自己的anntation上加@Retention(RetentionPolicy.RUNTIME)
RetentionPolicy有三个,CLASS,RUNTIME,SOURCE
我想有的注解初始化加载完就没有用了,而有的仅是看原文件时有用
测试实现:将注解的key和被注解的class的名称放到map中
上源码
@Retention(RetentionPolicy.RUNTIME)
public @interface Url {
public String key() default "";
}
@Url(key = "/test/")
public class TestAnnotation {
public static void main(String[] args) {
Map<String, String> urlMap = new HashMap<String, String>();
boolean isAnn = TestAnnotation.class.isAnnotationPresent(Url.class);
if(isAnn){
Url url = TestAnnotation.class.getAnnotation(Url.class);
String key = url.key();
String value = TestAnnotation.class.getName();
if("".equals(key)){
key = value.toLowerCase();
}
urlMap.put(key, value);
}
}
}