卜若的代码笔记-java编程技巧-第四章:反射基础(4)->关于前面三章提供的反射代码无法在jar中正常使用的解释

请使用...Relections框架,我也是抄人家的代码...那个代码有问题,应该是路径问题,当你打包成jar了之后,你的整个系统已经处于一个类似于沙盒的环境,前三章给的代码,在idea环境里面用着没问题,但是打包之后就无法使用了,所以最好还是使用框架

    <dependency>
      <groupId>org.reflections</groupId>
      <artifactId>reflections</artifactId>
      <version>0.9.10</version>
    </dependency>

我们通常喜欢扫描实现了某个接口的对象然反射实例化它:

    public static <T> Set<Class<? extends T>> getReflectionClass(Class<T> type){
      
        Reflections reflections = new Reflections(new ConfigurationBuilder().forPackages("com.netty.controller").addScanners(new SubTypesScanner()).addScanners(new FieldAnnotationsScanner()));

        Set<Class<? extends T>> subTypes = reflections.getSubTypesOf(type);

        return subTypes;
    }

这个是一个标准的调用格式

包名自定义之外,其他的不变就好

算了,重载一下吧

    public static <T> Set<Class<? extends T>> getReflectionClass(Class<T> type,String packageName){

        Reflections reflections = new Reflections(new ConfigurationBuilder().forPackages(packageName).addScanners(new SubTypesScanner()).addScanners(new FieldAnnotationsScanner()));

        Set<Class<? extends T>> subTypes = reflections.getSubTypesOf(type);

        return subTypes;
    }

一个简单的反射生成实现接口的实例:

哎,贼坑...我特么意味netty和springboot联机就有问题,问题是之前也搞过没问题啊,原来他么的是老子反射的问题...算了,能用框架就用框架吧,尤其是商业项目,除非你有很牛逼的团队...

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值