gpt4 book ai didi

Java 反射库 : find subclasses in package non recursively

转载 作者:行者123 更新时间:2023-11-30 07:09:07 24 4
gpt4 key购买 nike

给定以下代码段:

Set<Class<? extends MyClass>> allClasses = 
new Reflections("mypackage").getSubTypesOf(MyClass.class);

库在给定的包和子包中递归地搜索扩展MyClass 的所有类。我只需要在给定的包中执行此操作,即不在子包中执行此操作。有办法吗?

最佳答案

您可以使用输入过滤器(谓词),这样子包中的类型就不会被扫描:

new Reflections(new ConfigurationBuilder().
addUrls(ClasspathHelper.forPackage("my.pack")).
filterInputsBy(new FilterBuilder().
include("my\\.pack\\..*\\.class").
exclude("my\\.pack\\..*\\..*\\.class")));

当然,您始终可以(发布)过滤结果,例如:

import static org.reflections.ReflectionUtils.*;

getAll(reflections.getSubTypesOf(A.class),
withPattern(".*my\\.pack\\.(?!.*\\..*).*")); //ouch...

关于Java 反射库 : find subclasses in package non recursively,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23416349/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com