jueves, 7 de marzo de 2013

Api Reflection en Java. Ejemplo de uso

El otro día necesité usar reflection en java. Es el típico api que no uso muy a menudo, por lo que siempre tiro de documentación. Personalmente suelo recurrir al documento Introducción al API Reflection (Reflexión) de Java por Eneko González Benito (Keko) , alojado en JavaHispano. Antes tiraba de google, pero este documento está bastante bien para ser una introducción.

Aún así, pongo aquí un ejemplo rápido de uso, el cual es bastante intuitivo.


Código

Clase que vamos a usar de ejemplo.

class Persona{
  private String nombre;
  private String apellido;
  
  public String getNombre() {
   return nombre;
  }
  public void setNombre(String nombre) {
   this.nombre = nombre;
  }
  public String getApellido() {
   return apellido;
  }
  public void setApellido(String apellido) {
   this.apellido = apellido;
  }
  @Override
  public String toString() {
   return "Persona [nombre=" + nombre + ", apellido=" + apellido + "]";
  }
}

Clase que va a instanciar a la anterior usando el API Reflection. Responde a la pregunta... ¿Cómo coño se hacía...? :D

public class ReflectionTest {
 
 public static void main(String[] args) {
  try {
   Class p = Class.forName("Persona");
   
   try {
    Persona pp = (Persona) p.newInstance();
    
    pp.setNombre("Carlos");
    pp.setApellido("G. González");
    
    System.out.println(pp.toString());
    
   } catch (InstantiationException e) {
    e.printStackTrace();
   } catch (IllegalAccessException e) {
    e.printStackTrace();
   }
   
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
 }
}

Y el resultado:

Persona [nombre=Carlos, apellido=G. González]

Documentación relacionada

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...