Essayez d'obtenir la classe sous un package spécifique à l'aide de com.google.common.reflect.ClassPath.
pom.xml
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.0</version>
</dependency>
La méthode getTopLevelClassesRecursive récupère de manière récursive les classes des packages sous le package spécifié. Si vous souhaitez simplement obtenir la liste des classes dans le package spécifié, utilisez la méthode 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