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. Comentarios: 1 Fecha último comentario: 16/09/2008 15:29 Noticia publicada en www.javahispano.org. Accede a la página web y participa image image

You have already tagged this post. Your tags:

Noticia original: www.javahispano.org

Valid XHTML 1.0 Strict