Usar reflection + herança

2 respostas
Psycopata

Esse probleminha é pro experts em java. Usar reflection é fácil, só que eu ainda não descobri foi um jeito de usar reflaction em classes que utiliza herança. Quando eu uso reflection nessas classes, o reflection não acessa os métodos e atributos da classe mãe.

Por exemplo
classe A

class A
{
    private int A;
    private int B;
    private int C;
    private int D;
    
    public A ()
    {}
}

e Classe B

class B extends A
{
    private int W;
    private int X;
    private int Y;
    private int Z;
    
    public B ()
    {}
}

Beleza, quando uso reflection na classe B, o reflection acessa os atributos W, X, Y e Z, mas não os A, B, C e D. Mas eu quero que acesse todos, A, B, C, D, W, X, Ye Z.
Alguém tem ideia de como faz isso?

2 Respostas

nicoweda

Uma solucao possivel e recuperar os atributos separadamente.
Primeiro da classe e depois da superclasse.

Field[] fieldsB = B.class.getDeclaredFields();
Field[] fieldsA = B.class.getSuperclass().getDeclaredFields();

Mas da uma olhada na API direitinho…

abracos

F

Atributos privados não são herdados…

Você pode declarar eles como protected para que sejam herdados por B como sendo privados

Criado 15 de março de 2007
Ultima resposta 15 de mar. de 2007
Respostas 2
Participantes 3