Kata pengantar
Saat ini, semakin banyak desain arsitektur menggunakan anotasi, seperti Spring3.0, Struts2 dan kerangka kerja lainnya. Pertama -tama mari kita lihat definisi anotasi. Berikut ini adalah kode yang menggunakan JDK 5 Annotation @target:
@Target ({elementType.method})@retention (retentionpolicy.runtime)@warisan@documentedpublic @interface asynlog {}1. Penggunaan @target
java.lang.annotation.target
Digunakan untuk mengatur ruang lingkup penggunaan anotasi
java.lang.annotation.elementType
Target Menentukan lingkup anotasi untuk menggunakan koleksi enumerasi
2. Penggunaan ElementType
| Dapatkan nilainya | Lingkup Anotasi |
| METODE | Dapat digunakan dalam metode |
| JENIS | Dapat digunakan di kelas atau antarmuka |
| Annotation_type | Dapat digunakan pada jenis anotasi (jenis yang dimodifikasi oleh @Interface) |
| Konstruktor | Dapat digunakan dalam metode konstruksi |
| BIDANG | Dapat digunakan di domain |
| Local_variable | Dapat digunakan pada variabel lokal |
| KEMASAN | Digunakan untuk merekam informasi paket file java |
| PARAMETER | Dapat digunakan pada parameter |
Berikut ini adalah sorotan: ElementType. KEMASAN. Ini tidak digunakan di kelas umum, tetapi dalam paket file tetap-info.java. Harus ditekankan di sini bahwa penamaan harus menjadi "Info paket". Karena package-info.java bukan kelas hukum, menggunakan Eclipse untuk membuat kelas akan meminta ilegal, jadi Anda perlu membuat paket-info.java dengan cara membuat file.
Misalnya, paket rentang dapat digunakan untuk menentukan:
@Target ({elementType.package, elementType.method})@retention (retentionpolicy.runtime)@warisan@documentedpublic @interface asynlog {}Kemudian, buat file: package-info.java, dengan konten sebagai berikut:
Salinan kode adalah sebagai berikut:
@Asynlog
paket org.my.commons.logs.annotation;
Keynote: Anotasi hanya dapat digunakan dalam kisaran yang ditetapkan oleh ElementType, jika tidak kesalahan akan dikompilasi. Sebagai contoh: ruang lingkup hanya berisi elementType.method, yang berarti bahwa anotasi hanya dapat digunakan pada metode kelas, dan pengecualian akan dikompilasi di luar ruang lingkup penggunaan.