public Field[] getFields() throws SecurityException
Devuelve una matriz que contiene objetos Field que reflejan todos los campos públicos accesibles de la clase o interfaz representada por este objeto Class. Los elementos en la matriz devuelta no están ordenados y no están en ningún orden en particular. Este método devuelve una matriz de longitud 0 si la clase o interfaz no tiene campos públicos accesibles, o si representa una clase de matriz, un tipo primitivo o nulo.
Específicamente, si este objeto de clase representa una clase, este método devuelve los campos públicos de esta clase y de todas sus superclases. Si este objeto de clase representa una interfaz, este método devuelve los campos de esta interfaz y de todas sus superinterfaces.
El campo de longitud implícita para la clase de matriz no se refleja en este método. El código de usuario debe usar los métodos de la clase Array para manipular las matrices.
public Field[] getDeclaredFields() throws SecurityException
Devuelve una matriz de objetos Field que reflejan todos los campos declarados por la clase o interfaz representada por este objeto Class. Esto incluye acceso público, protegido, predeterminado (paquete) y campos privados , pero excluye los campos heredados . Los elementos en la matriz devuelta no están ordenados y no están en ningún orden en particular. Este método devuelve una matriz de longitud 0 si la clase o interfaz declara que no hay campos, o si este objeto de clase representa un tipo primitivo, una clase de matriz o vacío.
¿Y si necesito todos los campos de todas las clases para padres? Se necesita algún código, por ejemplo, de https://stackoverflow.com/a/35103361/755804 :
public static List<Field> getAllModelFields(Class aClass) {
List<Field> fields = new ArrayList<>();
do {
Collections.addAll(fields, aClass.getDeclaredFields());
aClass = aClass.getSuperclass();
} while (aClass != null);
return fields;
}
getField
puede obtener un campo heredado de una superclase perogetDeclaredField
no puede.getDeclaredField
restringirse a la clase en la que llama la función.