Попробовал ниже код, но он дает нулевые результаты (subTypesOf size равен нулю).
File projectFolder = new File("project_folder_some_path");
final Set<URL> urls = new HashSet<>();
Files.walkFileTree(projectFolder.toPath(), new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
if (file.toString().endsWith(".class")) {
urls.add(file.toFile().toURI().toURL());
}
return super.visitFile(file, attrs);
}
});
URLClassLoader classLoader = new URLClassLoader(urls.toArray(new URL[0]), getClass().getClassLoader());
ConfigurationBuilder configuration = new ConfigurationBuilder()
.addClassLoader(classLoader)
.addUrls(urls)
.setScanners(new SubTypesScanner(false), new TypeAnnotationsScanner())
.filterInputsBy(new FilterBuilder().includePackage("com.comp"));
Reflections reflections = new Reflections(configuration);
Set<Class<?>> subTypesOf = (Set<Class<?>>) reflections.getSubTypesOf(classLoader.loadClass("com.comp.framework.bean.SuperNumeratorIdEntity"));
// subTypesOf size is zero
classLoader.close();
здесь subTypesOf size равен нулю. Но файлы классов присутствуют в папке проекта, которая расширяет com.comp.framework.bean.SuperNumeratorIdEntity
Класс, который я ищу, выглядит следующим образом: publi c Класс XyzEntity расширяет SuperNumeratorIdEntity