imaginar el siguiente escenario:Reflexión para la clase del parámetro genérico en Java?
class MyClass extends OtherClass<String>{
String myName;
//Whatever
}
class OtherClass<T> {
T myfield;
}
Y estoy analizando MiClase utilizando la reflexión específicamente (MyClass.class).getDeclaredFields()
, en este caso voy a conseguir los siguientes campos (y tipos, utilizando getType() del campo):
myName --> String
myField --> T
Quiero obtener el Tipo real para T, que se conoce en tiempo de ejecución debido a la explícita "Cadena" en la notación extends, ¿cómo hago para obtener el tipo no genético de myField?
EDITAR RESUELVE:
Parece que la respuesta es "no se puede". Para aquellos que puedan ver esta pregunta más tarde, les recomendaría usar Jackson (estaba intentando hacer esto para generar JSON) y anotar sus clases y campos de tal manera que Jackson esté al tanto de la jerarquía de herencia y pueda hacer automáticamente la respuesta correcta a continuación sugerida.
La respuesta no es que no puedas; puede crear fácilmente un mapa desde los parámetros de tipo hasta los argumentos de tipo explícito. – Jeffrey