如何获取自定义注解标记的类
1、如何把一个包里所有自己想要的自定义注解标记的类,放入容器(一个Set<Class<?>>)中?@Controller //比如@Controller是自定义的注解public class HelloController{ //在A包下// ....}@Controllerpublic class TestController{//在B包下
·
1、如何把一个包里所有自己想要的自定义注解标记的类,放入容器(一个Set<Class<?>>)中?
@Controller //比如@Controller是自定义的注解
public class HelloController{ //在A包下
// ....
}
@Controller
public class TestController{//在B包下
// ....
}
// A和B包都是C包的子包
笨笨的方法:先找出这个包下,所有的java(后缀为.class)文件,放入一个Set<Class<?>>中(假设得到的这个Set叫ALL_SET),再根据注解的类型,筛选自己想要的。
Set<Class<?>> controllerClassSet = new HashSet<>();
for(Class<?> cls: ALL_SET){
if(cls.isAnnotationPresent(Controller.class)){ //Controller.class是一个自定义注解,具体见下面的代码
controllerClassSet.add(cls);
}
}
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Controller{ //自定义注解
}
更多推荐
已为社区贡献1条内容
所有评论(0)