Java 8 introduce dos cambios importantes en el diseño de Anotaciones para ayudar a los programadores a generar mejor código y mejorar la calidad del código automatizado para verificar la calidad.

Mejoras en las Anotaciones

Las anotaciones Type permiten a los programadores escribir anotaciones en más lugares que antes. El compilador luego verifica estas anotaciones, por ejemplo identificando usos de los valores null, modificación de valores accidentales y casos en los cuales los datos cruzan un límite de confianza sin una validación adecuada. Moviendo determinada información desde el Javadoc (entendida sólo por personas) y dentro del código (entendida por personas y analizadores), es fácil entender la intención y verificar la falta de ciertos errores.

Utilizar Anotaciones ya escritas es útil para los autores de estas anotaciones por que existe menos necesidad de crear anotaciones.

El framework Checker proporciona un conjunto de anotaciones que pueden beneficiar a los programadores de aplicaciones o librerías, tales como:

  • @NonNull,  el compilador podría determinar casos donde la ruta podría recibir valores nulos, sin tener que utilizar la excepción NullPointerException.
  • @ReadOnly, el compilador podría indicar cualquier intento de cambiar el objeto. Es similar a Collections.unmodifiableList, pero más general y se puede verificar en tiempo de compilación.
  • @Regex, proporciona una verificación en tiempo de compilación para que un objeto String que se pretende utilizar como una expresión regular este formada adecuadamente.
  • @Tainted y @Untainted, identifica tipos de datos que no pueden trabajar juntos, como el acceso remoto utilizado en el modo comando o información sensible.

Agregando Anotaciones al código:

Java SE 8 permite utilizar anotaciones en cualquier lugar que el tipo sea utilizado. Previamente, las anotaciones sólo se utilizaban en las definiciones. Algunos ejemplos:

Ejemplo de AnotaciónSignificado
@NonNull ListLista de String con valores que no pueden ser nulos
@Regex String validation = “(Java|JDK) [7,8]”Verifica en tiempo de compilación que la expresión utilizada es una expresión regular valida
private String getInput(String parameterName){
final String retval = @Tainted request.getParameter(parameterName);
return retval;
}
La información asignada a la variable retval esta contaminada y no puede utilizarse en procesos sensibles.

Para leer las anotaciones, se debe verificar que el siguiente item a la anotación, no es una anotación.

Detección automática de problema.

Cuando se trabaja en software es bueno poder detectar ciertos problemas en forma temprana. Un problema capturado temprano es más fácil de corregir que un problema detectado tarde, y un potencial problema también es fácil de manejar. Algunas anotaciones permiten que ciertos problemas sean capturados en forma inmediata. La anotación @Override permite al compilador o a una herramienta de análisis determinar si el programador escribió el método en forma correcta.

Anotaciones como @NonNull y @ReadOnly pueden ser utilizados por analizadores como Eclipse o NetBeans o analizadores comerciales.

Anotaciones en el Core de Java

No existe un conjunto de anotaciones disponibles en la versión Java 8, los ejemplos de este post utilizan el framework Checker. El tipo de Anotaciones en Java 8, se centra en la capacidad de escribir anotaciones en el lugar correcto para describir el programa. En forma separada existe JSR-305 (no es parte de Java 8) para identificar cuales de estas anotaciones deberían ser.


Artículo basado en Java 8’s new Type Annotations.

Puede ubicar un webinar con mayor detalle en Java 8 Launch webinar.

Java 8: nuevos tipos de anotaciones
Si te gusto, comparte ...Email this to someone
email
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Share on Google+
Google+
Etiquetado en:            

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Facebook
A %d blogueros les gusta esto: