lunes, 12 de mayo de 2008

Anotaciones en Java

Le echamos un vistazo a la web http://groups.google.com/group/eticom-master-java/web/anotaciones. A grnades rasgos podemos decir que son un mecanismo para dotar a las clases de meta-información. Para acceder a la información de una anotación en tiempo de ejecución utilizamos el API de reflexión: java.reflection.
Las anotaciones se emplean para anotar nuestro código, mientras que la información de la anotación puede estar relacionada con la seguridad (permisos, usuarios, roles,...), persistencia (transacciones, cache, tablas, esquemas ...), logging... dando lugar a un nuevo complemento de la POO, la Programación Orientada a Atributos. En definitiva, sirve para explicar el código al código.

Ejemplo anotación:
package eticom.anotaciones;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface Desarrollador {

String nombre();

}

Utilización de java.reflection, es decir de la metainformación proporcionada por la clase Class para obtener información sobre las anotaciones existentes de una clase y de su valor: http://code.google.com/p/eticom-master-java/source/browse/trunk/sintaxis/test/eticom/UsuarioTest.java

package eticom;  import org.testng.annotations.Test;  import eticom.anotaciones.Desarrollador;  public class UsuarioTest {    @Test  public void pruebaAnotacionAutorExiste(){   assert(Usuario.class.isAnnotationPresent(Desarrollador.class)):" no existe la anotaci—n";   Desarrollador annotation = Usuario.class.getAnnotation(Desarrollador.class);   assert(annotation.nombre().equals("Juan")):" no coincide el valor con Juan";  }  } 

1 comentario:

Juan Antonio Ruz dijo...

este blog lleva buena pinta!