Tengo un método de utilidad que atraviesa varias clases y recupera recursivamente los campos. Quiero comprobar si ese campo es una Colección. Aquí hay un código de ejemplo:Java: cómo comprobar si un campo es del tipo java.util.Collection
void myMethod(Class<?> classToCheck)
Field[] fields = classToCheck.getDeclaredFields();
for(Field field:fields)
{
// check if field if a Collection<?>
}
Gracias de antemano por la ayuda.
¿Quieres probar si el tipo declarado del campo es una implementación de colección, o si el objeto real al que se refiere el campo en cualquier objeto implementado Colección? Los dos resultados diferirían si a) el Campo se declarase como Objeto, pero se le asignó un objeto que implementa la Colección, o b) el Campo se declaró como Colección (o un descendiente) pero fue nulo. – DJClayworth
posible duplicado de [¿Cómo averiguar si un campo es instancia de un tipo a través de la reflexión?] (Http://stackoverflow.com/questions/2262322/howto-find-out-if-a-field-is-instanceof-a- type-via-reflection) –