Las anotaciones en Java al detalle
Como lenguaje de programación y plataforma informática Java, además de popular, es rápido, seguro y fiable. Y es que su fama es debida a algo, y todas esas virtudes que le adornan no son más que la mera realidad. Hay muchas aplicaciones y sitios web que no funcionarán a menos que tengan Java instalado, y cada día se crean más y más. ¡Ahí es nada! Hoy te lo contamos todo sobre las anotaciones en Java al detalle. ¡Vamos allá!
¿Qué son las anotaciones en Java?
Una anotación en Java es aquella característica que le permite incrustar información suplementaria en un archivo fuente. Esta información no cambia las acciones de un programa, pero puede ser utilizada por varias herramientas, tanto durante el desarrollo como durante el despliegue.
Una anotación en Java puede ser procesada por un generador de código fuente, por el compilador o por una herramienta de despliegue. En ocasiones, las anotaciones en Java también son llamadas metadata, pero el término anotación es el más descriptivo y más utilizado.
Características generales de las anotaciones en Java
- Las anotaciones de Java comienzan con ‘@’.
- Las anotaciones Java no cambian la actividad de un programa ordenado.
- Ayudan a relacionar metadatos (datos) con los componentes del programa, es decir, constructores, estrategias, clases, etc.
- Las anotaciones en Java no son comentarios sin adulteraciones, ya que pueden cambiar la forma en que el compilador trata el programa.
Anotaciones estándar en Java
Si dominas la programación sabrás que Java define muchas anotaciones incorporadas. La mayoría son especializadas, pero nueve son de propósito general.
- Cuatro importados de java.lang.annotation: @Retention, @Documented, @Target, y @Inherited
- Cinco de java.lang: @Override, @Deprecated, @SafeVarargs, @FunctionalInterface, y @SuppressWarnings.
@Retention
Especifica la política de retención que se asociará con la anotación. La política de retención determina el tiempo que una anotación está presente durante el proceso de compilación y despliegue.
@Documented
Una anotación de marcador que indica a una herramienta que se debe documentar una anotación. Está diseñado para ser utilizado sólo como una anotación en una declaración de anotación.
@Target
Especifica los tipos de elementos a los que se puede aplicar una anotación. Está diseñado para usarse solo como una anotación en otra anotación. @Target toma un argumento, que debe ser una constante o array de constantes de la enumeración ElementType, que define varias constantes, como CONSTRUCTOR, FIELD y METHOD. El argumento determina los tipos de elementos a los que se puede aplicar la anotación. Si @Target no está especificado, la anotación se puede usar en cualquier declaración.
@Inherited
Una anotación de marcador que hace que la anotación de una superclase sea heredada por una subclase.
@Override
Un método anotado con @Override debe anular un método de una superclase. Si no lo hace, se producirá un error en tiempo de compilación. Se utiliza para asegurar que un método de superclase esté anulado, y no simplemente sobrecargado. Esta es una anotación de marcador.
@Deprecated
Una anotación que indica que un elemento está obsoleto y no se recomienda su uso. A partir de JDK 9, @Deprecated se ha mejorado para permitir que se especifique la versión de Java en la que se produjo la obsolescencia y si el elemento obsoleto va a ser eliminado.
@SafeVarargs
Una anotación de marcador que indica que no se producen acciones inseguras relacionadas con un parámetro varargs en un método o constructor. Puede ser aplicado a métodos y constructores, con varias restricciones.
@FunctionalInterface
Específica que se deben suprimir una o más advertencias que pueda emitir el compilador. Las advertencias a suprimir se especifican por nombre, en forma de strirg.
@SuppressWarnings
Una anotación de marcador que se utiliza para anotar una declaración de interfaz. Indica que la interfaz anotada es una interfaz funcional, que es una interfaz que contiene un único método abstracto. Los interfaces funcionales son utilizados por las expresiones lambda. Es importante entender que @Functionallntertace es puramente informativo. Cualquier interfaz con exactamente un método abstracto es, por definición, una interfaz funcional.
Las anotaciones son una forma de metadatos que proporcionan datos sobre un programa que no forma parte del programa en sí. Las anotaciones no tienen ningún efecto directo en el funcionamiento del código que anotan.
Usos principales de las anotaciones en Java
Información para el compilador
El compilador puede utilizar las anotaciones para detectar errores o suprimir las advertencias.
Procesamiento en tiempo de compilación y tiempo de implementación
Las herramientas de software pueden procesar información de anotaciones para generar código, archivos XML, etc.
Procesamiento de tiempo de ejecución
Algunas anotaciones están disponibles para ser examinadas en tiempo de ejecución. Las anotaciones en Java se pueden aplicar a declaraciones: declaraciones de clases, campos, métodos y otros elementos del programa. Cuando se utiliza en una declaración, cada anotación suele aparecer, por convención, en su propia línea.
A partir de la versión Java SE 8, las anotaciones también se pueden aplicar al uso de tipos.
Como habrás podido comprobar Java da para mucho, y es que por algo es el lenguaje de programación universal, ¿no?. Pues bien, si quieres saberlo absolutamente todo sobre Java y dominarlo como todo un experto, en Tokio hacemos realidad tus deseos con nuestro curso de Programador Java. No olvides que esta es una profesión muy bien remunerada y con un futuro inmejorable. No pierdas ni un minuto y reserva ya tu plaza. ¡Te esperamos!