Мой проект включает отражение, и в настоящее время я обрабатываю общие типы. Мне удалось получить общий тип из списка (java.util.List) с помощью:
if(originalField.getGenericType() instanceof ParameterizedType){
ParameterizedType pt = (ParameterizedType) originalField.getGenericType();
Class<?> subClass = (Class<?>) pt.getActualTypeArguments()[0];
}
У меня также есть Collection<String>
и получается, что коллекция не может быть приведена к ParameterizedType.
У кого-то есть идея, как получить String (или любой другой тип, который будет) из коллекции?
Я читал о стирании Java, поэтому я знаю об этом, но, получив общий список из списка, я подумал, что, может быть, кто-то знает еще один "трюк".
Благодарю.
EDITED: Я повторяю все поля класса:
for (Field originalField : someClass.getDeclaredFields())
И затем, когда я столкнулся с каким-то полем List<String>
, с приведенным выше кодом я получаю String
в качестве переменной subClass.