Anotasi di Java: Jenis, Penggunaan, dan Contoh

Diterbitkan: 2022-05-19

Anotasi dalam bahasa pemrograman seperti Java mengacu pada metadata sintaksis yang dapat diintegrasikan dengan kode sumber Java. Berbagai faktor seperti paket Java, variabel, kelas, parameter, dan metode dapat dianotasi. Pengembang dapat dengan mudah membaca anotasi Java langsung dari file sumber, seperti tag Javadoc.

Anotasi Java juga dapat dimasukkan dan dibaca dari file kelas Java keluaran kompiler Java. Ini memungkinkan mesin virtual Java untuk memelihara anotasi dan membacanya melalui refleksi saat run-time. Di Java, dimungkinkan untuk membangun meta-anotasi dari yang sudah ada.

Ini adalah beberapa dasar anotasi di Java:

  1. Anotasi selalu dimulai dengan '@'. Misalnya: '@override', '@target', '@SuppressWarnings', dll.
  2. Anotasi tidak memengaruhi perilaku program yang dikompilasi.
  3. Anotasi membantu dalam mengaitkan metadata ke komponen program seperti metode, kelas, variabel, dll.
  4. Anotasi bukan hanya komentar karena dapat mempengaruhi bagaimana suatu program diproses oleh kompiler. Mereka menawarkan informasi kompiler tambahan tentang program tetapi bukan bagian dari program itu sendiri. Oleh karena itu, anotasi ini tidak memengaruhi eksekusi program yang dikompilasi.

Daftar isi

Jenis Anotasi di Java

1. Anotasi Nilai Tunggal

Anotasi nilai tunggal hanya mengizinkan satu bentuk singkatan karena hanya berisi satu anggota. Anggota harus diberi nilai pasca-aplikasi anotasi. Namun, nama anotasi tidak perlu ditentukan. Anggota harus memiliki nilai jika singkatan akan digunakan. Sebagai contoh:

@TestAnnotation("pengujian");

2. Anotasi Lengkap

Anotasi lengkap terdiri dari berbagai data seperti anggota data, nilai, pasangan, dan nama.

Sebagai contoh:

@TestAnnotation(owner=”Rahul”, value=”Class Geeks”)

Pelajari Kursus Pengembangan Perangkat Lunak online dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

3. Mengulangi Anotasi

Jika anotasi dapat diterapkan ke objek tunggal lebih dari sekali, anotasi tersebut diberi label sebagai anotasi berulang. Anotasi berulang ditentukan dengan tag @Repeatable seperti yang didefinisikan dalam paket java.lang.annotation. Bidang nilainya menunjukkan jenis penampung anotasi berulang.

Wadah didefinisikan sebagai anotasi dengan bidang nilai yang berisi larik anotasi berulang. Untuk membuat anotasi berulang, pertama buat anotasi penampung, lalu tentukan jenis anotasi sebagai input ke anotasi @Repeatable.

Sebagai contoh:

// Program Java untuk Mendemonstrasikan Anotasi yang Dapat Diulang

// Mengimpor kelas yang diperlukan

impor java.lang.annotation.Annotation;

impor java.lang.annotation.Repeatable;

impor java.lang.annotation.Retention;

impor java.lang.annotation.RetentionPolicy;

impor java.lang.reflect.Method;

// Jadikan anotasi Words dapat diulang

@Retention(RetentionPolicy.RUNTIME)

@Repeatable(MyRepeatedAnnos.class)

@kata-kata antarmuka

{

String kata() default "Halo";

int nilai() default 0;

}

// Buat anotasi wadah

@Retention(RetentionPolicy.RUNTIME)

@interface MyRepeatedAnnos

{

Kata[] nilai();

}

kelas publik Utama {

// Ulangi Kata-kata di newMethod

@Kata(kata = “Pertama”, nilai = 1)

@Kata(kata = “Kedua”, nilai = 2)

public static void newMethod()

{

Obj utama = baru Utama();

mencoba {

Kelas<?> c = obj.getClass();

// Dapatkan anotasi untuk newMethod

Metode m = c.getMethod(“Metode baru”);

// Menampilkan anotasi berulang

anotasi anno

= m.getAnnotation(MyRepeatedAnnos.class);

System.out.println(anno);

}

tangkap (NoSuchMethodException e) {

System.out.println(e);

}

}

public static void main(String[] args) { newMethod(); }

}

Hasil akhirnya adalah: @MyRepeatedAnnos(value={@Words(value=1, word=”First”), @Words(value=2, word=”Second”)})

Jelajahi Kursus Rekayasa Perangkat Lunak Populer kami

TL. Tidak Program Pengembangan Perangkat Lunak
1 Master of Science dalam Ilmu Komputer dari LJMU & IIITB Program Sertifikat Keamanan Siber CTME Caltech
2 Bootcamp Pengembangan Tumpukan Penuh Program PG di Blockchain
3 Program Pascasarjana Eksekutif dalam Pengembangan Perangkat Lunak - Spesialisasi dalam DevOps Lihat semua Kursus Rekayasa Perangkat Lunak

3. Anotasi Penanda

Anotasi penanda hanya dimaksudkan untuk tujuan deklarasi. Anotasi ini juga tidak mengandung anggota atau data apa pun di dalamnya. Satu-satunya tujuan adalah untuk mempertahankan kehadiran sebagai anotasi. Misalnya: @Override.

4. Ketik anotasi

Anotasi ini dapat digunakan di mana pun jenis digunakan. Misalnya, kita dapat membubuhi keterangan tentang tipe pengembalian suatu metode. Jenis anotasi ditandai dengan anotasi @Target.

Kode yang dapat menggambarkan anotasi tipe adalah:

// Mengimpor kelas yang diperlukan

impor java.lang.annotation.ElementType;

impor java.lang.annotation.Target;

// Menggunakan anotasi target untuk membubuhi keterangan jenis

@Target(ElementType.TYPE_USE)

// Mendeklarasikan anotasi tipe sederhana

@interface TypeAnnoDemo{}

// Kelas utama

GFG kelas publik {

// Metode penggerak utama

public static void main(String[] args) {

// Memberi anotasi pada tipe string

@TypeAnnoDemo String string = “Kode ini dianotasi dengan anotasi tipe”;

System.out.println(string);

abc();

}

// Memberi anotasi tipe pengembalian suatu fungsi

static @TypeAnnoDemo int abc() {

System.out.println(“Tipe kembalian fungsi ini diberi keterangan”);

kembali 0;

}

Contoh Anotasi yang Telah Ditentukan

Ada banyak jenis anotasi standar yang telah kami sebutkan sebelumnya. Mari kita lihat:

1. @Override

Anotasi penanda ini hanya dapat digunakan pada metode. Metode apa pun dengan anotasi @override harus menggantikan metode lain dari superclass. Jika gagal, kesalahan waktu kompilasi akan dipicu. Ini terjadi karena harus memastikan bahwa superclass benar-benar ditimpa dan tidak hanya kelebihan beban.

Kode yang dapat menggambarkan Override Annotation adalah:

// Kelas 1

basis kelas

{

Tampilan kekosongan publik ()

{

System.out.println(“Tampilan dasar()”);

}

public static void main(String args[])

{

Basis t1 = turunan baru();

t1.Tampilan();

}

}

// Kelas 2

// Memperluas kelas di atas

kelas Berasal memperluas Basis

{

@Mengesampingkan

Tampilan kekosongan publik ()

{

System.out.println(“Tampilan turunan()”);

}

}

2. @Target

Itu hanya dimaksudkan untuk digunakan sebagai anotasi ke anotasi lain. @Target menerima satu parameter, yang harus berupa konstanta ElementType. Parameter memutuskan deklarasi mana yang dapat diterapkan. Anotasi @Target dapat memiliki beberapa nilai, bukan hanya nilai tunggal. Namun, jika beberapa nilai harus dideklarasikan, maka harus dalam bentuk kurung kurawal seperti: @Target({ElementType.FIELD, ElementType.LOCAL_VARIABLE}).

Anotasi @Retention dapat digunakan di sini untuk menentukan status retensi dari anotasi. Tiga faktor yang memengaruhi anotasi @Retention:

  • Sumber: Kompiler mengabaikan anotasi karena biasanya disimpan di tingkat sumber.
  • Runtime: Ini dipertahankan saat runtime.
  • Kelas: Anotasi tetap pada waktu kompilasi dan diabaikan oleh program Java.

3. @Diwariskan

Anotasi ini hanya dapat digunakan untuk tujuan deklarasi, dan karenanya, hanya memengaruhi deklarasi kelas tertentu. Satu anotasi dapat menggantikan yang lain dan mewarisi propertinya. Dengan demikian, superclass dapat diperiksa jika anotasi tertentu tidak ada di subclass. Namun, jika ada anotasi, ia mendapatkan anotasi @Inherited.

Sebagai contoh:

// Kelas 1

kelas DeprecatedTest

{

@Usang

Tampilan kekosongan publik ()

{

System.out.println(“Tampilan pengujian tidak digunakan lagi()”);

}

}

// Kelas 2

SuppressWarningTest kelas publik

{

// Jika kita berkomentar di bawah anotasi, program menghasilkan

// peringatan

@SuppressWarnings({“dicentang”, “penghentian”})

public static void main(String args[])

{

DeprecatedTest d1 = baru DeprecatedTest();

d1.Tampilan();

}

}

Kesimpulan

Di sini, kita telah belajar tentang anotasi di Java. Kami juga telah mempelajari tentang jenis anotasi di Java dan penggunaannya yang dapat membantu pengembang Java membuat program yang kuat dan dapat diskalakan dengan mudah.

Jika Anda ingin mempelajari lebih lanjut tentang konsep Java, Sertifikasi PG terkait Pekerjaan upGrad dalam Rekayasa Perangkat Lunak adalah taruhan terbaik Anda untuk mendapatkan pemahaman yang komprehensif tentang bahasa pemrograman seperti Java, HTML, JS, serta alat dan pustaka pengembangan perangkat lunak lainnya.

Program ini dirancang untuk mahasiswa tahun terakhir atau lulusan pengangguran yang ingin mengamankan posisi entry-level di lapangan. Kursus 5 bulan mencakup spesialisasi dalam MERN/Cloud-Native dan membantu siswa membangun portofolio kelas atas dengan memaparkan mereka ke 5 proyek langsung.

Jadi, jangan menunggu. Kunjungi upGrad dan pesan kursi Anda hari ini!

Apa itu anotasi @jsonproperty?

Anotasi Jsonproperty memungkinkan pengembang untuk memetakan kunci JSON dengan nama properti selama serialisasi dan deserialisasi. Berdasarkan pengaturan default Java, kunci dipetakan ke bidang POJO selama serialisasi. Anotasi Json membantu mengesampingkan fungsionalitas default ini dengan menggunakan atribut string yang menunjukkan nama yang dipetakan.

Apa itu anotasi hibernasi?

Hibernate Annotations adalah teknik lain untuk menentukan metadata saat memetakan Object dan Relational Table. Mereka adalah metode pemetaan yang kuat dan relatif baru yang dapat digunakan sebagai pengganti metadata pemetaan XML. Menggunakan anotasi hibernasi, pengguna dapat menyimpan metadata dalam satu file java POJO yang juga membawa kode, sehingga membantu untuk lebih memahami struktur tabel.

Apa itu @SuppressWarnings?

Anotasi @SuppressWarnings memberi tahu kompiler tentang peringatan yang disembunyikan. Notifikasi hadir dalam bentuk string berdasarkan nama. Itu dapat diberikan untuk segala jenis deklarasi. Java mengklasifikasikan warning ke dalam dua kelas, yaitu unchecked dan deprecated. Ketika kode yang lebih lama berinteraksi dengan kode berbasis generik, peringatan yang tidak dicentang akan dihasilkan.