Код: Выделить всё
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);
}
}
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);
}
}
класс java.lang.String
класс java.lang.Integer
Но мне нужно иметь возможность правильно получить тип универсального значения, выполнив метод TestGetGenericType_B() , Кто может мне помочь? спасибо!
Подробнее здесь: https://stackoverflow.com/questions/792 ... reflection