Можете ли вы найти все классы в пакете с помощью отражения?

Вам, вероятно, стоит взглянуть core-java на Reflections library с открытым исходным кодом. С javax его помощью вы легко добьетесь jre желаемого.

Сначала настройте java-libraries индекс отражений (это немного java-libraries беспорядочно, поскольку поиск packages всех классов по умолчанию jre отключен):

List classLoadersList = new LinkedList();
classLoadersList.add(ClasspathHelper.contextClassLoader());
classLoadersList.add(ClasspathHelper.staticClassLoader());

Reflections reflections = new Reflections(new ConfigurationBuilder()
    .setScanners(new SubTypesScanner(false /* don't exclude Object.class */), new ResourcesScanner())
    .setUrls(ClasspathHelper.forClassLoader(classLoadersList.toArray(new ClassLoader[0])))
    .filterInputsBy(new FilterBuilder().include(FilterBuilder.prefix("org.your.package"))));

Затем вы можете reflect запросить все объекты в данном j2se пакете:

Set> classes = reflections.getSubTypesOf(Object.class);

java

reflection

packages

2022-11-17T04:28:20+00:00