如何在Java中通过反射API加速类扫描



我使用org.reflections库扫描ClassPath并获得类。下面是我的代码:

Reflections ref = new Reflections();
Set<Class<? extends Service>> classes = new HashSet<>();
for (Class<? extends Service> subType : ref.getSubTypesOf(Service.class)) {
    if (!Modifier.isAbstract(subType.getModifiers())) {
        classes.add(subType);
    }
}

但是我面临一个问题。这太花时间了。同时我不能设置一个包

new Reflections("my.pack");

,因为我想保留将来添加Service类的能力。我怎样才能加速这个过程呢?是否有可能排除rt.jar包?

至少使用FilterBuilder来排除java根包

它可能有助于指定SubTypesScanner,因为这是你正在做的。

Reflections ref = new Reflections(new SubTypesScanner(),
                                  new FilterBuilder().excludePackage("java"));

相关内容

  • 没有找到相关文章

最新更新