"Hi, Amigo!"

"Hello, Rishi."

"Ngayon ay bibigyan kita ng mas malalim na pagpapakilala sa mga anotasyon."

"Tulad ng malamang na alam mo na, ang mga anotasyon ay mga espesyal na salita na maaaring ilagay sa tabi ng mga klase, field, pamamaraan, at variable."

"Oo. Madalas ko silang na-encounter."

"Minsan tinatawag din silang metadata . Ang kanilang pangunahing layunin ay mag-imbak ng partikular na karagdagang impormasyon tungkol sa mga pamamaraan, field, at klase."

"Para kanino nila ito iniimbak?"

"Napakagandang tanong iyan."

"Ang mga tao ay nagsusulat ng mga anotasyon, na nangangahulugang kailangan ng isang tao ang mga ito."

"Hinahayaan ka ng mga anotasyon na mag-imbak ng karagdagang impormasyon tungkol sa code at mga elemento ng programa, ngunit, pormal, hindi sila bahagi ng code."

"Maaaring gamitin ang mga anotasyon upang makabuo ng XML, matukoy kung ang isang paraan ay hindi na ginagamit, subaybayan ang mga bug, atbp."

"Narito ang isang halimbawa ng mga anotasyon sa code:"

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

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

 }
}

"Tulad ng nakikita mo, maaaring iimbak ang data sa mga anotasyon."

"Kung ang isang anotasyon ay may isang field lang na tinatawag na value , maaaring tanggalin ang pangalan ng field:"

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

}

"Kung walang mga parameter sa loob ng mga panaklong, maaari rin silang alisin:"

Halimbawa
@Override
void getUniqueCatName()
{

}

"Napakadaling gumawa ng sarili mong anotasyon. Ang pagdedeklara ng anotasyon ay halos magkapareho sa pagdedeklara ng interface."

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

"Mayroong ilang mga pagkakaiba lamang."

"Una, maglagay ka ng «@» sign bago ang salitang interface ."

"Pangalawa, ang isang anotasyon ay maaaring magkaroon ng mga default na halaga. Ginagamit mo ang salitang default upang magtakda ng mga default na halaga. Tingnan ang halimbawa sa itaas. Ang mga parameter na ito ay opsyonal at maaaring alisin kapag nagdaragdag ng mga anotasyon."

"Ah. Mas madali ang lahat kaysa sa inaakala ko. At iniiwasan ko sila tulad ng pag-iwas ng Robo-Devil sa holy water. Hindi masyadong kaaya-aya kapag maraming bagay ang code na hindi mo lubos na naiintindihan."

"Naku, buti na lang pinaalalahanan mo ako — gusto kong sabihin sa iyo ang higit pa tungkol sa mga anotasyong ginamit ng compiler."

"Tatlo lang ang ganoong anotasyon. Well, tatlo sa ngayon."

@Hindi na ginagamit.

"Maaari mong i-annotate ang isang klase o isang paraan gamit ang @Deprecated. Magiging sanhi ito ng compiler na maglabas ng babala (ang babala ay hindi isang error), at ipapakita ng IntelliJ IDEA ang pamamaraang ito bilang strikethrough text. Isang bagay na katulad nito  :

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

@I-override.

"Itinuturing na pinakamahusay na kagawian ang pagdagdag ng @Override annotation sa mga pamamaraan na iyong na-override."

"Para saan 'yan? Hindi ba ipinapakita ng IDEA kung na-override o hindi ang isang paraan?"

"Una, mayroong IDEA at pagkatapos ay mayroong Java syntax."

"At pangalawa, hypothetically, maaari kang magkaroon ng isang sitwasyon kung saan ang pamamaraan ng base class ay pinapalitan ng pangalan nang walang katumbas na pagbabago sa pangalan ng pamamaraan sa subclass. Hindi gagana ang program gaya ng inaasahan, ngunit walang makakapansin. Ang anotasyong ito ay naimbento sa pigilan ang mga sitwasyong ito na mangyari:"

Halimbawa
@Override
void getUniqueCatName()
{

}

@SuppressWarnings.

"Minsan ang compiler ay nagpapakita ng maraming babala. At kung minsan alam namin ang tungkol sa mga «problema» at sadyang pinipiling gamitin ang kaukulang code na lumilikha sa kanila. Maaari mong gamitin ang anotasyong ito upang itago ang ilan sa mga babalang ito."

"Maaaring gamitin ng isang programmer ang @SuppressWarnings annotation para sabihin sa compiler, «Huwag magpakita ng babala para sa error na ito — sinadya ito." Halimbawa:"

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

}

"Nakuha ko."

"Medyo napapagod na ako. I'm gonna go wet my parched throat. Let's continue after a break, OK?"

"Oo naman."