The question
I am seeking guidance on how to identify all the classes within specific packages for my project. What would be the most effective method to accomplish this?
2 answers
While browsing the internet, I came across a web page that provides an example compatible with Java versions 8 through 16. What are your thoughts on this?
Hello
You could use Reflections:
private Class<?>[] scanForTasks(String packageStr) {
Reflections reflections = new Reflections((new ConfigurationBuilder()).setScanners(new Scanner[]{new SubTypesScanner(), new TypeAnnotationsScanner()}).setUrls(ClasspathHelper.forPackage(packageStr, new ClassLoader[0])).filterInputsBy((new FilterBuilder()).includePackage(packageStr)));
Set classes = reflections.getTypesAnnotatedWith(Task.class);
Class[] taskArray = (Class[])classes.toArray(new Class[classes.size()]);
return taskArray;
} }
Hope it helps!