"¡Hola, amigo!"

"Hola, Rishi".

"Hoy les daré una introducción más profunda a las anotaciones".

"Como probablemente ya sepa, las anotaciones son palabras especiales que se pueden colocar junto a clases, campos, métodos y variables".

"Sí. Los encuentro con mucha frecuencia".

"A veces también se les llama metadatos . Su propósito principal es almacenar información adicional específica sobre métodos, campos y clases".

"¿Para quién lo guardan?"

"Esa es una muy buena pregunta".

"La gente escribe anotaciones, lo que significa que alguien debe necesitarlas".

"Las anotaciones le permiten almacenar información adicional sobre el código y los elementos del programa, pero, formalmente, no forman parte del código".

"Las anotaciones se pueden usar para generar XML, determinar si un método está en desuso, rastrear errores, etc."

"Aquí hay un ejemplo de anotaciones en el código:"

Ejemplo
@CatInfo(manager=Catmanager.class, unique=true)
class Cat
{
 @Name("Missy")
 private String name;

 @SuppressWarnings(value = "unchecked")
 void getUniqueCatName()
 {

 }
}

"Como puede ver, los datos se pueden almacenar en anotaciones".

"Si una anotación tiene solo un campo llamado valor , entonces se puede omitir el nombre del campo:"

Ejemplo
@SuppressWarnings("unchecked")
void getUniqueCatName()
{

}

"Si no hay parámetros dentro de los paréntesis, también se pueden omitir:"

Ejemplo
@Override
void getUniqueCatName()
{

}

"Es muy fácil crear su propia anotación. Declarar una anotación es casi idéntico a declarar una interfaz".

Ejemplo
@interface CatManager
{
 Class manager();
 boolean unique();
 String name() default "Unknown Cat";
}

"Solo hay un par de diferencias".

"Primero, pones un signo «@» antes de la palabra interfaz ".

"En segundo lugar, una anotación puede tener valores predeterminados. Usa la palabra predeterminado para establecer valores predeterminados . Consulte el ejemplo anterior. Estos parámetros son opcionales y se pueden omitir al agregar anotaciones".

"Ah. Todo es más fácil de lo que pensaba. Y los he estado evitando como el Robo-Devil evita el agua bendita. No es muy agradable cuando el código tiene muchas cosas que no entiendes del todo".

"Oh, es bueno que me lo hayas recordado: quiero contarte más sobre las anotaciones que usa el compilador".

"Solo hay 3 anotaciones de este tipo. Bueno, tres hasta ahora".

@Obsoleto.

"Puede anotar una clase o un método con @Deprecated. Esto hará que el compilador emita una advertencia (una advertencia no es un error), e IntelliJ IDEA mostrará este método como texto tachado. Algo como esto  :

Ejemplo
Date date = new Date();
int year = date.getYear();

@Anular.

"Se considera una mejor práctica agregar la anotación @Override a los métodos que anula".

"¿Para qué es eso? ¿IDEA ya no muestra si un método está anulado o no?"

"En primer lugar, está IDEA y luego está la sintaxis de Java".

"Y segundo, hipotéticamente, podría tener una situación en la que se cambia el nombre del método de una clase base sin un cambio correspondiente al nombre del método en la subclase. El programa no funcionará como se esperaba, pero nadie lo notará. Esta anotación se inventó para evitar que estas situaciones sucedan:"

Ejemplo
@Override
void getUniqueCatName()
{

}

@Suprimir advertencias.

"A veces, el compilador muestra muchas advertencias. Y, a veces, conocemos los "problemas" y elegimos deliberadamente usar el código correspondiente que los crea. Puede usar esta anotación para ocultar algunas de estas advertencias".

"Un programador puede usar la anotación @SuppressWarnings para decirle al compilador: "No muestre una advertencia por este error, es intencional". Por ejemplo:"

Ejemplo
@SuppressWarnings("unchecked")
void getUniqueCatName()
{

}

"Entiendo."

"Me estoy cansando un poco. Voy a mojar mi garganta reseca. Continuemos después de un descanso, ¿de acuerdo?"

"Seguro."