Memahami Anotasi Java – Tutorial Java @annotations

Diterbitkan: 2019-10-22
Anotasi tingkat paket

Bagaimana dan di mana Anotasi digunakan di Java?

Anotasi, dalam bahasa pemrograman komputer Java, adalah bentuk khusus dari metadata sintaksis yang dapat ditambahkan ke kode sumber Java.

Kelas, metode, variabel, parameter, dan paket dapat diberi keterangan. Tidak seperti tag Javadoc, anotasi Java dapat bersifat reflektif karena dapat disematkan dalam file kelas yang dihasilkan oleh kompiler dan dapat disimpan oleh Java VM agar dapat diambil kembali saat run-time.

Dimungkinkan untuk membuat anotasi meta dari yang sudah ada di Java, yang membuat konsep ini lebih canggih.

Java mendefinisikan satu set anotasi yang dibangun ke dalam bahasa.

Memahami Anotasi Java - Tips Crunchify
Memahami Anotasi Java – Tips Crunchify

Anotasi diterapkan ke kode java:

  • @Override – Memeriksa bahwa fungsi tersebut merupakan override. Menyebabkan peringatan kompilasi jika fungsi tidak ditemukan di salah satu kelas induk.
  • @Usang – Menandai fungsi sebagai usang. Menyebabkan peringatan kompilasi jika fungsi digunakan.
  • @SuppressWarnings – Menginstruksikan kompiler untuk menekan peringatan waktu kompilasi yang ditentukan dalam parameter anotasi.

Anotasi diterapkan ke anotasi lain:

  • @Retention – Menentukan bagaimana anotasi yang ditandai disimpan—Baik dalam kode saja, dikompilasi ke dalam kelas, atau tersedia saat runtime melalui refleksi.
  • @Documented – Menandai anotasi lain untuk disertakan dalam dokumentasi.
  • @Target – Menandai anotasi lain untuk membatasi jenis elemen java yang dapat diterapkan anotasi.
  • @Inherited – Menandai anotasi lain untuk diwarisi ke subclass dari kelas beranotasi (secara default anotasi tidak diwarisi ke subclass).

Mari kita lihat ini melalui Contoh Contoh:

1) @Override Anotasi:

Kehadirannya menunjukkan kepada kompiler bahwa metode beranotasi harus menimpa metode superclass yang ada.

Kasus penggunaan paling umum untuk @Override adalah dengan metode Objek :

Alasan utama @Override dibuat adalah untuk menangani kesalahan ketik sederhana .

Misalnya, metode yang salah dideklarasikan sebagai

sebenarnya bukan override – nama metode memiliki semua huruf kecil , sehingga tidak sama persis dengan nama metode hashValue() . Namun itu akan dikompilasi dengan sangat baik. Kesalahan seperti itu mudah dibuat, dan sulit ditangkap, yang merupakan kombinasi berbahaya. Menggunakan anotasi @Override mencegah Anda membuat kesalahan seperti itu.

Anda harus terbiasa menggunakan @Override setiap kali Anda mengganti metode superclass.

Memahami Anotasi Java

2) @ Anotasi yang Tidak Digunakan Lagi:

Anotasi ini menunjukkan bahwa elemen yang ditandai sudah tidak digunakan lagi dan tidak boleh digunakan lagi. Kompiler menghasilkan peringatan setiap kali program menggunakan metode, kelas, atau bidang dengan anotasi @Deprecated .

Saat sebuah elemen tidak digunakan lagi, elemen tersebut juga harus didokumentasikan menggunakan tag Javadoc @deprecated , seperti yang ditunjukkan pada contoh berikut.

3) @SuppressWarnings Anotasi:

Katakan saja compiler, tolong jangan berteriak. Saya tahu apa yang saya lakukan .

4) @Retensi Anotasi:

Anotasi retensi menunjukkan di mana dan berapa lama anotasi dengan jenis ini harus dipertahankan.

Ada tiga nilai:

  • RetentionPolicy.SOURCE —Anotasi dengan tipe ini akan dipertahankan hanya pada tingkat sumber dan akan diabaikan oleh kompilator.
  • RetentionPolicy.CLASS —Anotasi dengan tipe ini akan dipertahankan oleh compiler pada waktu kompilasi, tetapi akan diabaikan oleh VM.
  • RetentionPolicy.RUNTIME —Anotasi dengan jenis ini akan disimpan oleh VM sehingga hanya dapat dibaca saat run-time.

5) @Anotasi Terdokumentasi:

Sekarang coba jalankan perintah Java Doc dan lihat hasilnya.

6) @Target Anotasi:

Target menunjukkan elemen program mana yang dapat dianotasi menggunakan instance dari jenis anotasi beranotasi. Nilai Target adalah salah satu anggota enum java.lang.annotation.ElementType :

  1. ANNOTATION_TYPE. Jenis anotasi beranotasi dapat digunakan untuk membuat anotasi deklarasi jenis anotasi.
  2. KONSTRUKTOR. Jenis anotasi beranotasi dapat digunakan untuk membuat anotasi deklarasi konstruktor.
  3. BIDANG. Jenis anotasi beranotasi dapat digunakan untuk membuat anotasi deklarasi bidang.
  4. LOCAL_VARIABLE. Jenis anotasi beranotasi dapat digunakan untuk menganotasi deklarasi variabel lokal.
  5. METODE. Jenis anotasi beranotasi dapat digunakan untuk membuat anotasi deklarasi metode.
  6. KEMASAN. Jenis anotasi beranotasi dapat digunakan untuk menganotasi deklarasi paket.
  7. PARAMETER. Jenis anotasi beranotasi dapat digunakan untuk membuat anotasi deklarasi parameter.
  8. TIPE. Tipe anotasi beranotasi dapat digunakan untuk membuat anotasi deklarasi tipe.

7) @Anotasi yang Diwarisi:

Persis seperti namanya, tipe anotasi @Inherited diwarisi oleh subclass dari tipe anotasi.

Dalam contoh ini, Superclass telah dijelaskan secara eksplisit dengan @ForEveryone dan @JustForMe . Subclass belum secara eksplisit ditandai dengan salah satu; namun, itu mewarisi @ForEveryone karena yang terakhir dijelaskan dengan @Inherited .

@JustForMe tidak dianotasi, jadi tidak diwarisi oleh Subclass .

Berikut adalah anotasi tingkat kelas

Anotasi tingkat kelas