Você está na página 1de 5

REFLECTION

Professor: Edmilson Domaredzki Verona


REFLECTION
 Permite criar chamadas em tempo de execução, sem
precisar conhecer as classes e objetos envolvidos quando
escrevemos nosso código (tempo de compilação).
 Esse dinamismo é necessário para resolvermos
determinadas tarefas que nosso programa só descobre
serem necessárias ao receber dados, em tempo de
execução.
 Deixa o código-fonte mais geral.
REFLECTION
 Algumas possibilidades utilizando reflection:
 Listartodos os atributos de uma classe e pegar seus valores
em um objeto;
 Instanciar classes cujo nome só vamos conhecer em tempo de
execução;
 Invocar métodos dinamicamente baseado no nome do método
como String;
 Descobrir se determinados pedaços do código têm
annotations.
EXEMPLO
 Listar:
Class<Negocio> classe = Negocio.class;
for (Field atributo : classe.getDeclaredFields()){
System.out.println(atributo.getName());
}
for (Method metodo : classe.getDeclaredMethods()) {
System.out.println(metodo.getName());
}
 Chamar Método:
 metodo.invoke(objeto, argumentos);
EXERCÍCIO
 Crie uma classe chamada Computador com os seguintes atributos
e métodos:
 private id
 public processador
 public memória
 getId() : Integer;
 setId(Integer id);
 trocarProcessador(String novo);
 mostrarDados();
 ligar();
 Apresentar no console:
 Na classe de execução liste todos os métodos e atributos públicos
presentes nela.
 Na classe de execução execute todos os métodos presentes nela.

Você também pode gostar