Мой проект включает отражение, и в настоящее время я обрабатываю общие типы. мне удалось получить общий тип из списка (java.util.List) с:Java получить общий тип коллекции
if(originalField.getGenericType() instanceof ParameterizedType){
ParameterizedType pt = (ParameterizedType) originalField.getGenericType();
Class<?> subClass = (Class<?>) pt.getActualTypeArguments()[0];
}
У меня также есть Collection<String>
и получается, что коллекция может НЕ быть отлиты в ParameterizedType.
У кого-то есть идея, как получить String (или любой другой тип, который будет) из коллекции?
Я читал о стирании Java, поэтому я знаю об этом, но после получения родового из списка я подумал, что, возможно, кто-то знает еще один «трюк».
Спасибо.
Редакция: Я итерация по всем полям класса с:
for (Field originalField : someClass.getDeclaredFields())
А потом, когда я столкнулся некоторые List<String>
поле с кодом выше я получаю String
как Подкласс переменная.
Вы можете показать еще какой-то код. Неясно, что здесь происходит. Если метод работает для 'List', по причине он не будет работать для' Collection'. –
Даже если вы получаете общий тип поля, вы не можете с ним справиться. Какова цель в вашем случае? –
Rohit Jhon - код действительно работает для List, но не для Collection. Во время выполнения он сказал, что Collection нельзя передать в ParameterizedType (как я упоминал в вопросе). Sotirious Delimanolis - Цель этого кода - сгенерировать код, чтобы я получил тип общего – Gumba