Java: истинный тип обобщенного значения не может быть получен путем отраженияJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Java: истинный тип обобщенного значения не может быть получен путем отражения

Сообщение Anonymous »

Код: Выделить всё

class A {
}

class B extends A {
}

@Test
void TestGetGenericType_B() {
B b = new B();
Type bType = b.getClass().getGenericSuperclass();
ParameterizedType parameterizedType = (ParameterizedType) bType;
Type[] actualTypeArguments = parameterizedType.getActualTypeArguments();
for (Type actualTypeArg : actualTypeArguments) {
System.out.println(actualTypeArg);
}
}
println:
T

TT
Мне нужны выходные данные типа String и Integer, когда переменная объявлена:
B b = new B();

Как ни странно, тип дженерика можно правильно получить в следующем путь!

Код: Выделить всё

class C extends A {
}

@Test
void TestGetGenericType_C() {
C c = new C();
Type bType = c.getClass().getGenericSuperclass();
ParameterizedType parameterizedType = (ParameterizedType) bType;
Type[] actualTypeArguments = parameterizedType.getActualTypeArguments();
for (Type actualTypeArg : actualTypeArguments) {
System.out.println(actualTypeArg);
}
}
println:
класс java.lang.String
класс java.lang.Integer
Но мне нужно иметь возможность правильно получить тип универсального значения, выполнив метод TestGetGenericType_B() , Кто может мне помочь? спасибо!

Подробнее здесь: https://stackoverflow.com/questions/792 ... reflection
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»