MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接
    1. 主页
    2. pqwoeiruty
    3. 帖子
    P
    • 资料
    • 关注 0
    • 粉丝 1
    • 主题 1
    • 帖子 2
    • 最佳 0
    • 有争议的 0
    • 群组 0

    pqwoeiruty 发布的帖子

    • RE: 插件运行时reflections框架无法扫描到带有对应注解的类

      解决了,在创建变量的时候直接传入pluginloader的classloader即可,代码如下

      //变量在插件主类中创建
      Reflections reflector=new Reflections("包名路径",getLoader().getClassLoaders().toArray());
      
      发布在 开发交流
      P
      pqwoeiruty
    • 插件运行时reflections框架无法扫描到带有对应注解的类

      工程是idea里mirai console插件里自带的java工程模板

      jdk版本:openjdk 17

      问题代码:

      Class CommandMap{
      
          public CommandMap(boolean scan) {
                 if (scan) this.scan();
          }
      
          private void scan() {
                 Reflections reflector = new Reflections("com.example");
                 Set<Class<?>> classes = reflector.getTypesAnnotatedWith(Command.class);
          }
      }
      

      调用(测试)均通过以下方式调用:

      CommandMap cm=new CommandMap(true);
      

      问题描述:使用项目模板自带的运行配置运行,reflections框架无法扫描到带有对应注解的类,使用junit运行测试代码可以扫描到对应的类。
      直接运行代码,classes的size为0,没有扫描到类
      捕获.PNG
      使用junit运行测试代码,classes的size为1,成功扫描到了一个类
      捕获1.PNG

      发布在 开发交流
      P
      pqwoeiruty
    • 1 / 1