Versuchen Sie, die Klasse mit com.google.common.reflect.ClassPath unter ein bestimmtes Paket zu bringen.
pom.xml
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.0</version>
</dependency>
Die Methode getTopLevelClassesRecursive ruft rekursiv Klassen aus Paketen ab, die unter dem angegebenen Paket liegen. Wenn Sie nur die Liste der Klassen im angegebenen Paket abrufen möchten, verwenden Sie die Methode getTopLevelClasses.
ClassLoader loader = Thread.currentThread().getContextClassLoader();
try {
Set<Class<?>> classes = ClassPath.from(loader)
.getTopLevelClassesRecursive(getClass().getPackage().getName()).stream()
.map(info -> info.load())
.collect(Collectors.toSet());
classes.forEach(System.out::println);
} catch (IOException e) {
// TODO
}
Recommended Posts