Buscar
Social
Ofertas laborales ES
« Artículo sobre cómo integrar componentes Flex en JSF empleando Fiji | Main | El principal problema a largo plazo para Java según Robert Miller »
martes
sep162008

Mas anotaciones en Java7

Desde la version 5 de Java tenemos la posibilidad de anotar  nuestro codigo, a estas alturas todos conocemos las anotaciones, las hemos usado o sencillamente la hemos visto en ejemplos de frameworks o en codigo de nuestros amigos. Son esas @Cosas que vemos antes de clases, campos o metodos. Aunque se puede decir que las anotaciones han sido utiles, porque la mayoria de los frameworks las usan, dentro de JSE, son realmente muy pocas, las mas comunes: @Override y @SupressWarning. 

La noticia es que Java7 incluira el paqueta javax.annotation con muchas nuevas (algunas muy buenas) anotaciones. Basicamente se incluiran anotaciones para los siguientes contextos:

  • Anotaciones para el lenguaje
  • Precondiciones
  • Uso adecuado de APIs
  • I/O
  • Seguridad
  • Concurrencia
En las anotaciones para el lenguaje tendremos por ejemplo @NonNull (ojo es diferente a @NotNull), cuando se utiliza el compilador verifica que si el campo anotado es nulo es porque algo anda mal y notifica al programador. Un uso comun seria en los compareTo 
public int compareTo(@Nonnull Integer anotherInteger)
{
int thisVal = this.value;
int anotherVal = anotherInteger.value;
return (thisVal < anotherVal ? -1 : (thisVal==anotherVal ? 0 : 1));
}
O tambien @CheckForNull, @Nullable. En el caso d la anotaciones para precondiciones existiran:
  • Signed
  • Nonnegative
  • MatchesPattern
  • Syntax

La @Sytanx por ejemplo se podra usar en metodo que retornen una String y esa deba estar formateada siguiendo alguna sintaxis. Por ejemplo  @Syntax("HTML")   o @Syntax("Groovy") Hay muchas otras como @Inmutable, @WillClose para IO @ThreadSafe, @GuardedBy para seguridad y muchas mas que pueden encontrar en. http://today.java.net/pub/a/today/2008/09/11/jsr-305-annotations.html Mi duda ahora es: "¿Bienvenidos al Annotations Hell?" es cierto que algunas de esas anotaciones podrian reducir el trabajo del programador y dejar muchas cosas en mano del compilador y del JRE, el miedo esta en llegar al punto de ver cosas como:

@Class("Empleado")@Extends(@Class("Persona"))
@UseDatabase(@JNDI("jdbc/myCon")) 
@Require@NonNull@ThradSafe@ Method("sayHello")@NeedWebAccess(@Mode("JSF"),@AlternateMode("WebServices"))
@CanExport(@Language("Ruby"))
public class @Class("name"){   
}

Sencillamente sera el fin de Java como lenguaje, porque como siempre he dicho, la plataforma esta hecha para durar muuucho tiempo mas usando cualquier otro lenguaje jejej. 

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.
Comentarios deshabilitados
Comentarios deshabilitados en esta noticia.