2009-10-08 20 views

Respuesta

7

Pero es posible averiguar el uso de la API de reflexión. Eche un vistazo a Field.getGenericType():

Type type = field.getGenericType(); 
if (type instanceof ParameterizedType) { 
    Type[] genericArguments = ((ParameterizedType) type).getActualTypeArguments(); 
} 
+0

Tiene razón, pero eso es extraño: pensé que la información se perdió durante el tiempo de ejecución. ¿Este artículo sobre genéricos de reflexión está desactualizado? http://www.artima.com/weblogs/viewpost.jsp?thread=208860 –

+0

Ese artículo tiene algunos ejemplos similares al código que publiqué anteriormente. Cierta información genérica se pierde en el tiempo de ejecución; las declaraciones de campo/método declaradas estáticamente no. Eche un vistazo a las preguntas frecuentes de Java Generics sobre los detalles del modo: http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html – ChssPly76

+0

¡Gracias! La diferencia obvia es mirar directamente al campo vs. mirar las interfaces genéricas o superclases. Por alguna razón, nunca pensé simplemente mirar el campo. –

Cuestiones relacionadas