Java Reflection

8 respostas
E

opa beleza pessoal?

quem já mexeu com reflection em java ai? :roll:
alguem sabe se é possivel, verificar se um field de uma
classe implementa alguma interface, ou se é apenas possivel
verificar se este é instancia de alguma classe?

valeu :wink:

8 Respostas

J

tio, nao entendi bem sua pergunta … (field de uma classe ?? ) bom eu sei que tem como saber se uma classe implementa uma determinada interface…o que seria esse field ai ??? (desculpa resp uma pergunta com outra hehhee )

E

me refiro ao:

java.lang.reflect.Field :wink:

C

Olá AnjoSupremo,

É possível sim! Você pega todas as interfaces que a classe do campo implementa e verifica se tem a que você quer. Por exemplo:

public static boolean implementa(Field f, Class intfc) { Class[] intfcs = f.getClass().getInterfaces(); for (Class c : intfcs) { if (c.equals(intfc)) { return true; } } return false; }

Outra alternativa, mas eu não sei se dá certo, é você tentar fazer uma coersão do seu objeto para a interface que você quer saber se ele implementa, e se der um ClassCastException é porque ele não implementa ela :stuck_out_tongue:

Até mais,

E

hum acho que isso deve funcionar

values :grin:

S

Ué, não é só usar o operador instanceof?

import java.io.Serializable;

class A implements Serializable {
	public static void main(String[] args) {
		A a = new A();
		System.out.println(a instanceof Serializable);
	}
}

Saída: true

E

hum legal…

agora alguem ai sabe como setar o valor de um Field?

:roll:

C

Olá AnjoSupremo,

Veja o método set da classe Field (e também os métodos setXxx).

Até mais, :wink:

E

valeu :joia:

Criado 15 de maio de 2006
Ultima resposta 15 de mai. de 2006
Respostas 8
Participantes 4