"Cześć, Amigo!"

„Cześć, Rysiu”.

„Dzisiaj dam ci głębsze wprowadzenie do adnotacji”.

„Jak zapewne już wiesz, adnotacje to specjalne słowa, które można umieścić obok klas, pól, metod i zmiennych”.

– Tak. Spotykam ich bardzo często.

„Czasami są one również nazywane metadanymi . Ich głównym celem jest przechowywanie określonych dodatkowych informacji o metodach, polach i klasach”.

„Dla kogo oni to przechowują?”

– To bardzo dobre pytanie.

„Ludzie piszą adnotacje, co oznacza, że ​​ktoś musi ich potrzebować”.

„Adnotacje pozwalają przechowywać dodatkowe informacje o kodzie i elementach programu, ale formalnie nie są one częścią kodu”.

„Adnotacje mogą być używane do generowania XML, określania, czy metoda jest przestarzała, śledzenia błędów itp.”

„Oto przykład adnotacji w kodzie:”

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

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

 }
}

„Jak widać, dane można przechowywać w adnotacjach”.

„Jeśli adnotacja ma tylko jedno pole o nazwie wartość , nazwę pola można pominąć:”

Przykład
@SuppressWarnings("unchecked")
void getUniqueCatName()
{

}

„Jeśli w nawiasach nie ma parametrów, można je również pominąć:”

Przykład
@Override
void getUniqueCatName()
{

}

„Tworzenie własnych adnotacji jest bardzo łatwe. Deklarowanie adnotacji jest prawie identyczne z deklarowaniem interfejsu”.

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

„Jest tylko kilka różnic”.

„Najpierw umieszczasz znak «@» przed słowem interfejs ”.

„Po drugie, adnotacja może mieć wartości domyślne. Używasz słowa default, aby ustawić wartości domyślne . Zobacz przykład powyżej. Parametry te są opcjonalne i można je pominąć podczas dodawania adnotacji”.

„Ach. To wszystko jest łatwiejsze, niż myślałem. I unikałem ich tak, jak Robo-Diabeł unika wody święconej. Nie jest zbyt przyjemnie, gdy kod zawiera wiele rzeczy, których nie do końca rozumiesz”.

„Och, dobrze, że mi przypomniałeś — chcę ci powiedzieć więcej o adnotacjach używanych przez kompilator”.

„Są tylko 3 takie adnotacje. Cóż, jak dotąd trzy”.

@Przestarzałe.

„Możesz dodać adnotację do klasy lub metody za pomocą @Deprecated. Spowoduje to, że kompilator wyda ostrzeżenie (ostrzeżenie nie jest błędem), a IntelliJ IDEA wyświetli tę metodę jako przekreślony tekst. Coś takiego  :

Przykład
Date date = new Date();
int year = date.getYear();

@Nadpisanie.

„Za najlepszą praktykę uważa się dodawanie adnotacji @Override do metod, które przesłaniasz”.

„Po co to? Czy IDEA już nie pokazuje, czy metoda jest nadpisana?”

„Po pierwsze, jest IDEA, a potem jest składnia Java”.

„Po drugie, hipotetycznie możesz mieć sytuację, w której nazwa metody klasy bazowej zostanie zmieniona bez odpowiedniej zmiany nazwy metody w podklasie. Program nie będzie działał zgodnie z oczekiwaniami, ale nikt tego nie zauważy. Ta adnotacja została wymyślona, ​​aby zapobiegać takim sytuacjom:”

Przykład
@Override
void getUniqueCatName()
{

}

@Tłumić ostrzeżenia.

„Czasami kompilator wyświetla wiele ostrzeżeń. Czasami wiemy o «problemach» i celowo wybieramy użycie odpowiedniego kodu, który je tworzy. Możesz użyć tej adnotacji, aby ukryć niektóre z tych ostrzeżeń”.

„Programista może użyć adnotacji @SuppressWarnings , aby powiedzieć kompilatorowi: «Nie pokazuj ostrzeżenia o tym błędzie — jest to zamierzone». Na przykład:"

Przykład
@SuppressWarnings("unchecked")
void getUniqueCatName()
{

}

"Rozumiem."

„Jestem trochę zmęczony. Idę zwilżyć spieczone gardło. Kontynuujmy po przerwie, dobrze?”

"Jasne."