Java: utilizando anotaciones predefinidas
Los tipos y el contenido de las anotaciones en Java, como comentarios, sólo están limitadas por su imaginación. Sí, Java proporciona algunas anotaciones predefinidas, pero también puede crear anotaciones que describen los elementos del programa en la forma que desee. La idea es que usted describe cómo debe funcionar una anotación, proporciona los datos para ello, y el compilador se encarga del resto.
Anotaciones siempre comienzan con el símbolo @ (arroba). Así que, cuando veasDocumented, usted sabe que usted está viendo una anotación. Las siguientes secciones le dicen más sobre anotaciones predefinidos y personalizados.
Una anotación predefinido es uno que existe como parte de Java. Usted encontrará estas anotaciones en el paquete java.lang.annotation. Para utilizarlos, se agrega java.lang.annotation importación. * - Hasta el comienzo de su aplicación. La siguiente lista proporciona una visión general de las anotaciones predefinidas:
deprecated: A veces una elemento - una clase, método, campo, u otra característica de programación - es reemplazado por un elemento nuevo o simplemente ya no es necesario.
Cuando esto sucede, se marca el elemento como obsoleta por lo que los desarrolladores saben que necesitan actualizar su código y dejar de usar ese elemento en particular. Adición de la anotaciónDeprecated emite el estado obsoleto del elemento en la documentación generada por Javadoc (una utilidad que se utiliza para crear la documentación automáticamente basándose en el contenido de sus archivos de código).
Documented: Cada vez que marca un elemento como se documenta, las salidas de servicios públicos Javadoc al archivo de la documentación que crea basan en el contenido del archivo fuente.
FunctionalInterface: Especifica que la interfaz es una interfaz funcional utilizada para las clases anónimas y expresiones lambda.
Inherited: Las clases pueden heredar características de una clase padre. De forma predeterminada, esto incluye funciones como métodos, pero no incluye anotaciones de la clase padre. El uso de la anotaciónInherited dice Java para aplicar las anotaciones de clase de los padres a la subclase también.
@ Override: Especifica que un elemento de clase hija es reemplazar un elemento superclase (clase padre). Si esta anotación está presente y la superclase carece de un elemento del mismo nombre, el compilador emite un error para que usted sepa algo está mal con el aumento al presupuesto.
Repeatable: La mayoría de las anotaciones se aplican sólo una vez para un elemento en particular. Sin embargo, en algunos casos es necesario aplicar la anotación más de una vez. Esta anotación indica Java que es aceptable aplicar la anotación a un elemento en particular más de una vez.
Retention: Una anotación puede afectar sólo la fuente de códigos el código fuente y compiler- o el código fuente, compilador, y JVM. Esta anotación define qué efecto otra anotación debe tener. Por ejemplo, usted puede necesitar solamente una anotación documentación específica para afectar el código fuente y compilador.
SafeVarargs: Es posible realizar operaciones que no son seguros en los argumentos pasados a un método o constructor. Esta anotación dice que el código no hace nada peligroso y por lo tanto no requiere de todos los controles habituales. La reducción del número de controles hace que la aplicación se ejecute más rápido.
SuppressWarnings: El compilador de Java genera una gran cantidad de advertencias para señalar problemas potenciales. Por ejemplo, si intenta utilizar un método obsoleto en su código, el compilador emite un mensaje de advertencia al respecto. Esta anotación le dice al compilador que no salida tales advertencias para el elemento afectado.
Target: Al crear sus propias anotaciones, puede ser útil para decirle al compilador que estas anotaciones deben afectar sólo a un tipo de elemento específico. Por ejemplo, si crea un bloque de autor que está destinado a aparecer sólo en el nivel de paquete, entonces usted puede limitar la anotación a sólo que tipo de elemento mediante el uso de la anotaciónTarget.