– 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:"
@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ó:"
@SuppressWarnings("unchecked")
void getUniqueCatName()
{
}
"Ha a zárójelben nincsenek paraméterek, akkor azok ki is hagyhatók:"
@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."
@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 :
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:"
@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:"
@SuppressWarnings("unchecked")
void getUniqueCatName()
{
}
"Megvan."
"Kicsit fáradt vagyok. Meg fogom áztatni a kiszáradt torkom. Szünet után folytassuk, jó?"
"Biztos."
GO TO FULL VERSION