"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:”
@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ąć:”
@SuppressWarnings("unchecked")
void getUniqueCatName()
{
}
„Jeśli w nawiasach nie ma parametrów, można je również pominąć:”
@Override
void getUniqueCatName()
{
}
„Tworzenie własnych adnotacji jest bardzo łatwe. Deklarowanie adnotacji jest prawie identyczne z deklarowaniem interfejsu”.
@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 :
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:”
@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:"
@SuppressWarnings("unchecked")
void getUniqueCatName()
{
}
"Rozumiem."
„Jestem trochę zmęczony. Idę zwilżyć spieczone gardło. Kontynuujmy po przerwie, dobrze?”
"Jasne."
GO TO FULL VERSION