Предположим, существует три класса MyClass1 , MyClass2 , MyClass3 , существующих в пакете com.my.package .В другом методе я пытаюсь создать экземпляр универсального типа, где каждый класс представляет тип обратного вызова ровно один раз:
call.enqueue(new Callback<MyClass1>(){...});
call.enqueue(new Callback<MyClass2>(){...});
call.enqueue(new Callback<MyClass3>(){...});
Вместо того, чтобы вводить каждый класс вручную, я хочу добиться автоматического обнаруженияклассы в определенном пакете и впоследствии создают универсальный тип этого типа.
Эта функция желательна, потому что классы могут быть добавлены или удалены в com.my.package , и я не хочу менять код где-либо еще.Даже если у меня есть доступ к списку объектов java.lang.Class , я все равно не могу сгенерировать типы для универсальных объектов из объектов Class .Я знаю, что тип универсального не может быть объявлен во время выполнения (поэтому рефлексия отсутствует), однако, на мой взгляд, вся необходимая информация еще доступна во время компиляции.
Есть ли способ достичь этого?
(В моем приложении, в котором я работаю с Retrofit, Gson требуется конкретный тип POJO в угловых скобках для анализа данных JSON. Базовая модель довольно сложна и может измениться.)