Создание динамического c списка всех классов в пакете - PullRequest
0 голосов
/ 26 мая 2020

Допустим, я составляю список возможных предметов в игре. Каждый из них является производным от класса Item, и все они помещаются в указанный c пакет "com.name.app.items".

Я хочу создать список из них, созданный динамически, без добавления какой-либо внешней информации, кроме файла, содержащего класс.

Я попытался получить все файлы в пакете и вычислить их соответственно, но безрезультатно. Рефлексия просто отказывается сотрудничать. Независимо от того, какую конфигурацию я использую, сканер всегда возвращает пустой набор.

Вторая моя мысль заключалась в том, чтобы просто вызвать метод stati c, например ItemDatabase.add (this), но, насколько я знаю, это невозможно без создания экземпляра этого объекта или вызова stati c извне.

Есть ли метод go -to для решения такого рода проблем? Или необходимо (помимо объявления самого класса) уведомить какой-то реестр о его существовании?

1 Ответ

0 голосов
/ 27 мая 2020

После многих часов исследований я наконец нашел подходящий ответ. Простая задача Gradle сделала мою работу за меня как Reflections, ClassGraph et c. не очень хорошо работает на Android.

Имейте в виду, что если вы хотите узнать, какие классы доступны в пакете во время выполнения - это будет очень сложная задача, поэтому найдите другое решение или подготовьтесь себя в дальний путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...