Java通过反射获取自定义注解
来源:互联网 发布:双色球算法必中6红球 编辑:程序博客网 时间:2024/05/16 15:01
Java通过反射获取自定义注解
需要的几个jar包
1.reflections-0.9.10.jar 反射包
2.guava-15.0.jar 反射的依赖包
3.javassist-3.18.2-GA.jar 反射的依赖包自定义注解类
import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)public @interface Controller { String value() default "/";}
- 测试类1
@Controller("/test1")public class Test1 {}
- 测试类2
@Controller("test2")public class Test2 {}
- 测试类3
@Controller("/test3")public class Test3 {}
- 整体功能代码
import java.util.HashMap;import java.util.Map;import java.util.Set;import org.reflections.Reflections;public class AnnotationTest { private static final String CONTROLLER_PACK = "com.lzy.*"; public static void main(String[] args) { Map<String, Class> map = getControllerAnnotation(); for (Map.Entry<String, Class> m : map.entrySet()) { System.out.println("Value:" + m.getKey() + "----" + "Class:" + m.getValue()); } } /** * 获取注解的controller * * @return */ @SuppressWarnings("rawtypes") public static Map<String, Class> getControllerAnnotation() { Map<String, Class> result = new HashMap<String, Class>(); //指定反射扫描包 Reflections reflections = new Reflections(CONTROLLER_PACK); //获取注解类型的set集合数据 Set<Class<?>> classes = reflections.getTypesAnnotatedWith(Controller.class); //存储到结果集 for (Class clazz : classes) { Controller controller = (Controller) clazz.getAnnotation(Controller.class); String value = controller.value(); result.put(value, clazz); } return result; }}
- 运行结果
阅读全文
0 0
- Java通过反射获取自定义注解
- java 自定义注解annotation和通过反射获取注解
- java 通过反射获取注解
- java 通过反射获取注解
- Java自定义注解和反射获取注解
- java中自定义注解并通过反射获取注解属性值
- java中自定义注解并通过反射获取注解属性值
- java中自定义注解并通过反射获取注解属性值
- java中自定义注解并通过反射获取注解属性值
- android 自定义注解 通过反射获取注解属性值
- Java自定义注解和运行时靠反射获取注解
- Java自定义注解和运行时靠反射获取注解
- Java自定义注解和运行时靠反射获取注解
- Java自定义注解和运行时靠反射获取注解
- Java自定义注解和运行时靠反射获取注解
- Java自定义注解和运行时靠反射获取注解
- Java自定义注解和运行时靠反射获取注解
- Java自定义注解和运行时靠反射获取注解
- H.264 基础及 RTP 封包详解
- C#取三个数的最大值、最小值、平均值、中间值
- Which Android runs which Linux kernel? ( Android Version --- API Level --- Linux Kernel in AOSP )
- C++ primer 薄片系列之拷贝控制
- mysql主备
- Java通过反射获取自定义注解
- ubuntu下安装nginx服务器与设置开机自启动
- 身份证号码验证算法
- 歌词显示控件的实现下——自定义View
- 关于activity的启动模式的理解
- Hibernate Validation
- 二进制和十进制的相互转换
- 时间与时间戳之间的转换
- Mac Python3安装MySQL问题记录