Como saber em qual superclasse (de uma classe parametrizada) um determinado atributo foi declarado?

1 resposta
F

Olá pessoal!

Meu problema é o seguinte:
preciso de um método que receba como parametro o nome de um campo, e que retorna a superclasse de uma classe parametrizada em que esse campo foi declarado.

Alguem tem alguma ideía de como fazer um método com essas funcionalidades?

Muito obrigado!

1 Resposta

T

É mais trabalhoso que difícil.
Dica: estude os métodos “getDeclaredFields” e “getSuperClass” da classe java.lang.Class.

Seria algo parecido com:

pegue a classe do objeto;

liste os campos com getDeclaredFields();

se algum dos campos tem o nome desejado, você achou o campo.

senão, pegue a superclasse com getSuperClass(), e se a superclasse não for java.lang.Object, liste os campos como foi dito acima.

Veja que esse pseudocódigo não vai listar os campos “public static final” que podem aparecer em interfaces, não em classes.
Se você quiser saber isso, então é necessário também listar as interfaces com getInterfaces().

Criado 10 de outubro de 2007
Ultima resposta 10 de out. de 2007
Respostas 1
Participantes 2