Tecnología

Inicio

¿Por qué el Anotación Java omite en el Código?

¿Por qué el Anotación Java omite en el Código?


anotaciones Java, añadidos en Java 1.5, puede añadir información adicional acerca de una clase, método o campo. Esta información se puede utilizar de varias maneras, como se detalla cómo debe ejecutar un programa, o qué métodos debe ser evitado por otros desarrolladores. Dependiendo de cómo las anotaciones fueron codificados originalmente, esta información puede estar disponible sólo en el código fuente original, cuando se trabaja con la clase compilada directamente o en tiempo de ejecución a través de la reflexión.

¿Cuáles son las anotaciones?

En pocas palabras, una anotación es un medio de la adición de información adicional - también conocida como metadatos - a su programa sobre el artículo anotada. Esta información puede ser tan simple como una nota que detalla la autoría o algo tan complejo como la asociación de un campo con una columna de base de datos. Las anotaciones pueden ser manejados en una de tres maneras: al permanecer únicamente en el código fuente original, de dónde son por lo general sólo son visibles para otros desarrolladores; al ser compilado en el código de bytes, en el que no están disponibles para el procesamiento en tiempo de ejecución, pero están disponibles para los programas de acceso a los archivos de clase; y siendo compilado por lo que la información se carga en tiempo de ejecución por lo que el programa en ejecución puede acceder a él.

¿Por qué requieren de anotación detalles en tiempo de ejecución?

Debido a que un desarrollador puede indicar información adicional acerca de un tema, tener esta información disponible en tiempo de ejecución puede permitir que un programa para actuar de manera diferente para ese artículo sin que se requiera necesariamente que la información para compilar (o incluso la función). Por ejemplo, considere una anotación que asocia un campo con una columna de base de datos; tal vez sería algo como esto:

@DBField ( "Nombre")

firstName cadena privada;

Durante la ejecución, el programa podría leer esa información y darse cuenta de que debe llenar el campo basándose en el contenido de esa columna (de acuerdo, sino que también necesitaría mesa y remar información). Esto también permitiría al usuario escribir, por ejemplo, una rutina de manejo de datos genéricos que se basa en las anotaciones y no necesita mucha especialización para cada clase.

Cómo las anotaciones en Java se ignoran

Como se dijo anteriormente, hay tres formas para el compilador para manejar una anotación que viene a través de código: mediante el desguace de él (y con ello dejándolo solo en el código), mediante la compilación en el código de bytes y mediante la compilación en el código de bytes con el la información necesaria para cargarlo en tiempo de ejecución. La segunda opción - la compilación en el código de bytes (sin cargar en tiempo de ejecución) - es el valor predeterminado para todas las anotaciones, por lo menos que se especifique lo contrario, una anotación no estará disponible en tiempo de ejecución. Sin embargo, esta especificación es extremadamente simple, si tiene acceso al código fuente de la anotación. Basta con añadir una anotación adicional a la definición de la anotación:

@Retention (RetentionPolicy.RUNTIME)

@interface MyAnnotation pública ...

El uso de la anotación en tiempo de ejecución

Una vez que se haya asegurado la anotación está disponible en tiempo de ejecución, su uso es extremadamente sencillo. Asumiendo que tiene una anotación llamado "autor" con un valor de cadena, puede utilizar el siguiente código para asegurarse de que tienen acceso en tiempo de ejecución a la anotación:

Autor definitiva autor = MyClass.class.getAnnotation (Author.class);

System.out.println (author.value ());

En este caso, MyClass se declara como sigue:

@author ( "John Doe")

public class MiClase ...

Al llevar a cabo las líneas de arriba, tendrá que obtener el valor de la anotación ( "John Doe", en este caso) impresa en la consola.