You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SonarCloud检测到Java中SubTypesScanner构造器过时,求替代方案

解决Reflections中SubTypesScanner过时的问题

针对你遇到的org.reflections.scanners.SubTypesScanner过时问题,完全可以用Scanners.SubTypes替代,具体代码重构方案如下:

替换后的代码

先确保导入新的扫描器相关类:

import org.reflections.Reflections;
import org.reflections.scanners.Scanners;
import org.reflections.util.ClasspathHelper;
import org.reflections.util.ConfigurationBuilder;

private static final String PACKAGE_ENTITIES = "my.package";

// 重构后的Reflections初始化逻辑
Reflections reflections = new Reflections(
    new ConfigurationBuilder()
        .forPackages(PACKAGE_ENTITIES)
        .addScanners(Scanners.SubTypes.filterResultsBy(s -> true))
        .addClassLoaders(ClasspathHelper.forClassLoader())
);

关键细节说明

  • 旧代码中new SubTypesScanner(false)的false参数表示不排除Object类的子类型,新版本默认的Scanners.SubTypes会过滤掉Object的子类型,因此通过filterResultsBy(s -> true)可以完全匹配旧代码的行为。
  • 若你不需要扫描Object的子类型,直接使用Scanners.SubTypes即可,无需额外配置filter。
  • 新版本Reflections推荐用ConfigurationBuilder构建实例,相比旧构造器更灵活,也方便后续扩展其他扫描规则或配置。

内容的提问来源于stack exchange,提问作者gmn_1450

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 08:05:13