Curso de ExtJS, en JoeDayz

0 comentarios

El 8 de agosto empiezo a dictar el taller de ExtJS en JoeDayz.
Las inscripciones están abiertas y pueden hacerlo en http://extjs-joedayz.eventbrite.com/, ahi encontrarán mayor información de costos, horarios y lugar.
Descargar Syllabus

Uso de Reflections(Reflexiones) en Java

3 comentarios

La reflexión es comúnmente utilizada cuando se quiere examinar o modificar en tiempo de ejecución el comportamiento de las aplicaciones. Por ejemplo, sabiendo el nombre de una clase, podríamos saber que propiedades, constructores, o métodos tiene. Es como cuando uno obtiene la metadata de una tabla, pero en este caso es la metadata de una clase.
Se puede instanciar objetos, solo con saber el nombre de la clase, o ejecutar sus métodos en tiempo de ejecución.

¿Alguna vez no te has preguntado como Struts logra invocar un método en tu DispatchAction, tan solo con saber el nombre del método que tu envías en el request?. Pues la respuesta es: usando reflexiones. Lo podrás comprobar viendo el fuente de la clase DispacthAction.java de struts.

La reflexión es una técnica poderosa y puede permitir que las aplicaciones realicen operaciones que de otro modo sería imposible.

Aquí un pequeño ejemplo del uso de reflexiones:
1) Clase a manipular con reflexiones:


public class ClienteAction {
public String saludo(String nombre){
return "Hola " + nombre;
}
public String despedida(String nombre){
return "Nos vemos " + nombre;
}
}

2) Clase que aplica reflexiones sobre ClienteAction

import java.lang.reflect.Method;

public class Principal {
public static void main(String ... x) throws Exception{
ClienteAction clienteAction = new ClienteAction();
//1) Carga en memoria la clase ClienteAction.
// Pudo haber sido con clienteAction.getClass()
Class claseClienteAction = Class.forName("ClienteAction");
String nombreMetodoAEjecutar = "saludo";
String parametroAEnviar = "Warner Pencaks";
//2) Crea un método. El primer parametro indica el nombre del método.
// El segundo indica el tipo de parametro que va a aceptar (pueden haber mas).
Method metodoAEjecutar = claseClienteAction.getMethod(nombreMetodoAEjecutar, String.class);
//3) Se ejecuta el método sobre el objeto clienteAction, enviandole un parámetro.
Object respuesta = metodoAEjecutar.invoke(clienteAction, parametroAEnviar);
//4) Se muestra lo que resulta de ejecutar el método.
System.out.println( metodoAEjecutar.getName() + " : " + String.valueOf(respuesta));
}
}

Links de algunos tutoriales, donde se explica mas a detalle el uso de otras clases que componen el paquete java.lang.reflect.*, como Field, Constructor, etc:
http://java.sun.com/docs/books/tutorial/reflect/index.html
http://www.javahispano.org/contenidos/es/introduccrion_al_api_reflection_reflexrion_de_ja/

SCJP(Sun Certified Java Programmer) 5.0

2 comentarios

Para obtener esta certificación hay que rendir un examen donde Sun Microsystems pone a prueba tu conocimiento sobre Java en su versión estándar 5.0. Cuenta con 72 preguntas, donde tendrás que contestar correctamente por lo menos 43 de ellas, lo que equivale al 59%. Para rendir este examen no se necesita ningún requisito en especial, pero para los siguientes, si es necesario aprobar el SCJP. Aquí las diferentes certificaciones que brinda Sun:
Les dejo mis apuntes que hice en mi preparación, están basados en el libro "SCJP Sun Certified Programmer for Java 5 Study Guide" de Kathy Sierra:
http://www.lima-ti.com/public/mayer/scjp5_resumen_MayerHorna.rar