"Hai, Amigo!"

"Halo, Rishi."

"Hari ini saya akan memberi Anda pengantar yang lebih dalam tentang anotasi."

"Seperti yang mungkin sudah Anda ketahui, anotasi adalah kata khusus yang dapat diletakkan di samping kelas, bidang, metode, dan variabel."

"Ya. Saya sangat sering bertemu dengan mereka."

"Terkadang mereka juga disebut metadata . Tujuan utamanya adalah untuk menyimpan informasi tambahan khusus tentang metode, bidang, dan kelas."

"Untuk siapa mereka menyimpannya?"

"Itu pertanyaan yang sangat bagus."

"Orang menulis anotasi, artinya seseorang pasti membutuhkannya."

"Anotasi memungkinkan Anda menyimpan informasi tambahan tentang kode dan elemen program, tetapi, secara formal, itu bukan bagian dari kode."

"Anotasi dapat digunakan untuk menghasilkan XML, menentukan apakah suatu metode tidak digunakan lagi, melacak bug, dll."

"Inilah contoh anotasi dalam kode:"

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

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

 }
}

"Seperti yang Anda lihat, data dapat disimpan dalam anotasi."

"Jika anotasi hanya memiliki satu bidang bernama value , maka nama bidang dapat dihilangkan:"

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

}

"Jika tidak ada parameter di dalam tanda kurung, maka parameter tersebut juga dapat dihilangkan:"

Contoh
@Override
void getUniqueCatName()
{

}

"Sangat mudah untuk membuat anotasi Anda sendiri. Mendeklarasikan anotasi hampir identik dengan mendeklarasikan antarmuka."

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

"Hanya ada beberapa perbedaan."

"Pertama, Anda memberi tanda «@» sebelum kata interface ."

"Kedua, anotasi dapat memiliki nilai default. Anda menggunakan kata default untuk menetapkan nilai default . Lihat contoh di atas. Parameter ini bersifat opsional dan dapat dihilangkan saat menambahkan anotasi."

"Ah. Semuanya lebih mudah dari yang kukira. Dan aku telah menghindari mereka seperti Iblis-Robo menghindari air suci. Sangat tidak menyenangkan ketika kode memiliki banyak hal yang tidak sepenuhnya kamu mengerti."

"Oh, bagus sekali Anda mengingatkan saya — saya ingin memberi tahu Anda lebih banyak tentang anotasi yang digunakan oleh kompiler."

"Hanya ada 3 anotasi seperti itu. Yah, sejauh ini ada tiga."

@Usang.

"Anda dapat membuat anotasi kelas atau metode dengan @Deprecated. Ini akan menyebabkan kompiler mengeluarkan peringatan (peringatan bukanlah kesalahan), dan IntelliJ IDEA akan menampilkan metode ini sebagai teks yang dicoret. Sesuatu seperti ini  :

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

@Mengesampingkan.

"Dianggap sebagai praktik terbaik untuk menambahkan anotasi @Override ke metode yang Anda ganti."

"Untuk apa itu? Bukankah IDEA sudah menunjukkan apakah suatu metode diganti atau tidak?"

"Pertama, ada IDEA dan kemudian ada sintaksis Java."

"Dan kedua, secara hipotetis, Anda bisa mengalami situasi di mana metode kelas dasar diganti namanya tanpa perubahan yang sesuai dengan nama metode di subkelas. Program tidak akan berfungsi seperti yang diharapkan, tetapi tidak ada yang akan menyadarinya. Anotasi ini diciptakan untuk mencegah situasi ini terjadi:"

Contoh
@Override
void getUniqueCatName()
{

}

@SuppressWarnings.

"Terkadang kompiler menampilkan banyak peringatan. Dan terkadang kami mengetahui tentang «masalah» dan dengan sengaja memilih untuk menggunakan kode terkait yang membuatnya. Anda dapat menggunakan anotasi ini untuk menyembunyikan beberapa peringatan ini."

"Seorang programmer dapat menggunakan anotasi @SuppressWarnings untuk memberi tahu kompiler, «Jangan tampilkan peringatan untuk kesalahan ini — ini disengaja.» Misalnya:"

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

}

"Mengerti."

"Aku sedikit lelah. Aku akan membasahi tenggorokanku yang kering. Mari kita lanjutkan setelah istirahat, oke?"

"Tentu."