如何获取自定义注解标记的类

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{ //自定义注解
}

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值