– Szia Amigo!

– Helló, Rishi.

"Ma mélyebb bevezetést fogok adni a kommentárokhoz."

"Mint már valószínűleg tudja, az annotációk olyan speciális szavak, amelyek osztályok, mezők, metódusok és változók mellé helyezhetők."

– Igen. Nagyon gyakran találkozom velük.

"Néha metaadatoknak is nevezik őket . Elsődleges céljuk, hogy konkrét további információkat tároljanak a metódusokról, mezőkről és osztályokról."

– Kinek tárolják?

– Ez nagyon jó kérdés.

"Az emberek megjegyzéseket írnak, ami azt jelenti, hogy valakinek szüksége van rájuk."

"A megjegyzések lehetővé teszik további információk tárolását a kódról és a programelemekről, de formálisan nem részei a kódnak."

"A megjegyzések segítségével XML-t lehet generálni, meghatározni, hogy egy módszer elavult-e, nyomon követni a hibákat stb."

"Íme egy példa a megjegyzésekre a kódban:"

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

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

 }
}

"Amint látja, az adatok annotációkban tárolhatók."

"Ha egy annotációnak csak egy érték nevű mezője van , akkor a mező neve elhagyható:"

Példa
@SuppressWarnings("unchecked")
void getUniqueCatName()
{

}

"Ha a zárójelben nincsenek paraméterek, akkor azok ki is hagyhatók:"

Példa
@Override
void getUniqueCatName()
{

}

"Szuperkönnyű saját kommentárt létrehozni. A kommentár deklarálása szinte azonos a felület deklarálásával."

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

– Csak néhány különbség van.

"Először is tegyen egy «@» jelet az interfész szó elé .

"Másodszor, egy kommentárnak lehetnek alapértelmezett értékei. Az alapértelmezett szót használja az alapértelmezett értékek beállításához . Lásd a fenti példát. Ezek a paraméterek nem kötelezőek, és elhagyhatók megjegyzések hozzáadásakor."

"Ah. Minden könnyebb, mint gondoltam. Én pedig úgy kerültem őket, mint a Robo-Ördög a szenteltvizet. Nem túl kellemes, ha a kódban sok olyan dolog van, amit nem teljesen értesz."

– Ó, de jó, hogy emlékeztettél – szeretnék többet mondani a fordító által használt megjegyzésekről.

"Csak 3 ilyen annotáció van. Nos, eddig három."

@Elavult.

"Osztályokat vagy metódusokat a @Deprecated segítségével jelölhet meg. Ez a fordító figyelmeztetést ad (a figyelmeztetés nem hiba), és az IntelliJ IDEA ezt a metódust áthúzott szövegként jeleníti meg. Valami ilyesmi  :

Példa
Date date = new Date();
int year = date.getYear();

@Felülbírálás.

"Az a legjobb gyakorlat, ha hozzáadja a @Override megjegyzést a felülbírált metódusokhoz."

"Mire való? Az IDEA már nem mutatja meg, hogy egy módszer felül van-e írva vagy sem?"

"Először is ott van az IDEA, majd a Java szintaxis."

"Másodszor pedig hipotetikusan előfordulhat, hogy egy alaposztály metódusa átneveződik anélkül, hogy az alosztályban lévő metódusnevet megfelelően megváltoztatnák. A program nem fog úgy működni, ahogyan azt várták, de senki sem fogja észrevenni. Ezt a megjegyzést azért találták ki, hogy megakadályozza az ilyen helyzetek előfordulását:"

Példa
@Override
void getUniqueCatName()
{

}

@SuppressWarnings.

"Néha a fordító sok figyelmeztetést jelenít meg. Néha pedig tudunk a «problémákról», és szándékosan a megfelelő kódot választjuk, amely létrehozza őket. Ezzel a megjegyzéssel elrejthet néhány figyelmeztetést."

"A programozó a @SuppressWarnings annotációval azt üzenheti a fordítónak: "Ne jelenítsen figyelmeztetést erre a hibára – ez szándékos." Például:"

Példa
@SuppressWarnings("unchecked")
void getUniqueCatName()
{

}

"Megvan."

"Kicsit fáradt vagyok. Meg fogom áztatni a kiszáradt torkom. Szünet után folytassuk, jó?"

"Biztos."