public Field[] getFields() throws SecurityException
Retorna uma matriz contendo objetos de campo que refletem todos os campos públicos acessíveis da classe ou interface representada por esse objeto de classe. Os elementos na matriz retornados não são classificados e não estão em nenhuma ordem específica. Esse método retorna uma matriz de comprimento 0 se a classe ou a interface não tiver campos públicos acessíveis ou se ela representa uma classe de matriz, um tipo primitivo ou nulo.
Especificamente, se esse objeto Class representar uma classe, esse método retornará os campos públicos dessa classe e de todas as suas superclasses. Se esse objeto Class representar uma interface, esse método retornará os campos dessa interface e de todas as suas superinterfaces.
O campo de comprimento implícito para a classe da matriz não é refletido por esse método. O código do usuário deve usar os métodos da classe Array para manipular matrizes.
public Field[] getDeclaredFields() throws SecurityException
Retorna uma matriz de objetos Field refletindo todos os campos declarados pela classe ou interface representada por este objeto Class. Isso inclui campos públicos, protegidos, padrão (pacote) e privados , mas exclui os campos herdados . Os elementos na matriz retornados não são classificados e não estão em nenhuma ordem específica. Esse método retorna uma matriz de comprimento 0 se a classe ou a interface não declarar nenhum campo ou se esse objeto Class representar um tipo primitivo, uma classe de matriz ou nulo.
E se eu precisar de todos os campos de todas as classes pai? É necessário algum código, por exemplo, 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
pode obter um campo herdado de uma superclasse, masgetDeclaredField
não pode.getDeclaredField
restringir-se à classe na qual você chama a função.