anotasi
1. Apa itu anotasi? (Anotasi atau komentar)
Anotasi, terjemahan yang akurat harus - anotasi. Ini sangat berbeda dari komentar.
Annotation adalah fitur yang diperkenalkan oleh JDK5.0 dan versi yang lebih baru. Ini pada tingkat yang sama dengan kelas, antarmuka, dan enumerasi dan dapat menjadi jenis java.
Sintaks dimulai dengan @,
Komentar adalah beberapa hafalan atau deskripsi cepat yang dibuat oleh pemrogram kelas kode sumber, metode, properti, dll. (Seperti apa metode ini digunakan), dan untuk dilihat orang.
Anotasi adalah bagian yang dapat dipahami oleh kompiler Java dan untuk dilihat oleh kompiler.
Mari kita berikan contoh sederhana untuk melihat penggunaan dan fungsi anotasi.
@Override adalah anotasi bawaan Java. Fungsinya adalah untuk memeriksa apakah metode yang ditentukan dalam subclass benar saat menyusun kode.
anotasi paket; Hewan kelas abstrak publik {public abstrak void eat (); } paket anotasi; Kelas publik Cat memperluas hewan {@override public void eat (string food) {}} Di sini, di Subclass Cat, metode EAT dijelaskan sebagai metode yang menimpa kelas induk, tetapi memiliki satu parameter lebih dari metode kelas induk.
Jika Anda mengedit di Eclipse, akan ada prompt Palang Merah. (Kompilasi kode tidak akan dilewati).
Jika Anda menghapus anotasi @Override, tidak ada masalah dengan kompilasi, tetapi metode EAT di CAT adalah metode baru dari kelas ini, tidak diwarisi dari kelas induk.
2. Anotasi bawaan Java
Termasuk @Override, anotasi bawaan Java yang umum?
1. @Deprecated
Anotasi tidak dianjurkan dan dapat digunakan pada metode dan kelas.
Pada dasarnya, metode dan kelas ini ditinggalkan dan tidak direkomendasikan karena beberapa alasan seperti peningkatan atau kinerja, tetapi harus dipertahankan untuk kompatibilitas atau alasan lain.
Jadi letakkan anotasi ini di atasnya.
Ada banyak contoh seperti itu di Java sendiri API. Jika Anda menempatkan anotasi ini pada metode ini, Anda akan melihat metode alternatif baru mana.
Saat menulis kode di Eclipse, metode yang menambahkan anotasi ini akan menambah serangan ke deklarasi dan panggilan.
2.@override
3.@SuppressWarnings
Abaikan peringatan.
Jika kode Anda memiliki beberapa peringatan dalam transformasi atau bagian lain, tetapi Anda ingin mengabaikan peringatan ini, Anda dapat menggunakan anotasi ini.
1) PERINGATAN KAPAN DESSRECASI MENGGUNAKAN KELAS ATAU METODE YANG TIDAK DIPERHATIKAN
2) Peringatan yang tidak dicentang saat konversi yang tidak dicentang dilakukan
3) Peringatan Fallthrough muncul ketika operasi istirahat tidak ditambahkan setelah kasus digunakan, menyebabkan program terus menjalankan pernyataan kasus lainnya
4) Path Peringatan Saat Menetapkan ClassPath yang Salah atau Jalur File Sumber
5) Peringatan Serial Saat Definisi SerialVersionuid tidak ada di kelas serializable
6) Peringatan Takut Jika ada klausa akhirnya tidak dapat diselesaikan secara normal
7) Semua peringatan tentang semua situasi di atas
3. Anotasi khusus
Selain anotasi bawaan yang disediakan oleh Java sendiri, Java juga menyediakan fungsi untuk menyesuaikan anotasi khusus.
Cara untuk mendefinisikan anotasi adalah dengan menggunakan anotasi untuk mendefinisikan anotasi. Anotasi yang digunakan untuk mendefinisikan anotasi disebut anotasi meta.
Anotasi meta utama adalah sebagai berikut: @target; @Penyimpanan; @Documented; @Inherit
1. @Target menunjukkan di mana anotasi digunakan, dan dapat digunakan pada kelas, metode, atau atribut. Parameter elemenettype yang mungkin meliputi:
Deklarasi konstruktor elemenetype.constructor
Deklarasi Domain Elemenettype.Field (termasuk instance enum)
Elemenettype.local_variable Deklarasi variabel lokal
Deklarasi Metode Elemenetype.Method
Pernyataan paket elemenettype.package
Deklarasi parameter elemenetype.parameter
Elemenetype.type kelas, antarmuka (termasuk jenis anotasi) atau deklarasi enum
2. @retention menunjukkan pada tingkat apa untuk menyimpan informasi anotasi. Parameter retensi opsional meliputi:
RetensiPolicy. Anotasi sumber akan dibuang oleh kompiler
RetentionPolicy.class Annotation tersedia dalam file kelas, tetapi akan dibuang oleh VM.
RetentionPolicy.Runtime VM juga akan mempertahankan komentar selama runtime, sehingga informasi anotasi dapat dibaca melalui mekanisme refleksi.
3. @Documented, apakah akan memasukkan anotasi ini saat menghasilkan dokumen, sertakan anotasi ini di javadoc
4. @Inherit
Biarkan subkelas mewarisi anotasi di kelas induk melihat beberapa contoh definisi sederhana:
anotasi paket; impor java.lang.annotation.Documented; impor java.lang.annotation.elementType; impor java.lang.annotation.inherited; impor java.lang.annotation.Retention; impor java.lang.annotation.RetentionPolicy; impor java.lang.annotation.target; @Target (elementType.method) public @interface myannotation {string value (); } @Retention (retentionpolicy.source) @interface myannotation1 {} @retention (retentionpolicy.class) @interface myannotation2 {} retensi (retentionpolicy.runtime) @interface {@intery {{{@interface {@interface {@interface {@interface {@interface {@interface {@interface {@interface4. Gunakan contoh:
anotasi paket; impor java.lang.annotation.annotation; @MyAnnotation3 TestAnnotation kelas publik {public static void main (string [] args) {// todo Metode yang dihasilkan otomatis annotation annotation = testannotation.class.getAnnotation (myannotation3.class); System.out.println (annotation.tostring ()); }} Cetak hasilnya: @annotation.myannotation3 ()
Jika myannotation1 dan myannotation2 diganti dalam contoh di atas, nilai anotasi yang diperoleh kosong, yang merupakan perbedaan antara retensipolicy.
V. Peran anotasi
Pada titik ini, kita dapat merangkum peran anotasi.
Dasar -dasar dapat dibagi secara kasar menjadi tiga kategori:
1. Tulis dokumen
2. Analisis Kode
3. Pemeriksaan Kompilasi Namun, kerangka kerja open source memberikannya lebih banyak fungsi, seperti:
Hibernate, konfigurasi anotasi,
@Column ("AA") Private String XX; Ini mirip dengan konfigurasi XML, yang menyederhanakan konfigurasi dalam program dan memindahkan bagian metadata dari file XML ke kode itu sendiri, dan mengelola dan memeliharanya di satu tempat.
Bagaimana cara diimplementasikan secara internal? - Mekanisme refleksi Java, mirip dengan contoh di atas.
Komentar
Meskipun anotasi dan komentar hanya satu kata yang berbeda, penggunaannya sangat berbeda.
Kalimat yang sama benar, anotasi untuk dilihat oleh kompiler, dan anotasi untuk dilihat orang.
Berdasarkan ini, untuk suatu metode:
1. Jelaskan fungsi metode ini dengan jelas, input dan output. Anda dapat menambahkan lebih banyak informasi seperti penulis dan versi.
2. Lakukan saja kedua hal ini dengan pengaturan komentar yang indah. Misalnya:
/******************************************************************************************************NAME: PENGGUNAAN: XXX*Argumen: N/A*Kembali:*Penulis: Oscar99*Versi: V09. V0.11 ****************************************************************************
Sepertinya ini adalah catatan yang bagus ^^.
Tetapi untuk bahasa Java, komentar diberikan lebih banyak fungsi. Artinya, Anda dapat menggunakan fungsi Javadoc untuk mengekspor komentar dalam kode ke file HTML.
Jika kode Anda adalah kode dengan kesamaan yang tinggi, dokumen ini adalah dokumen referensi API, mirip dengan Java API.
Oleh karena itu, untuk menghasilkan dokumen semacam itu, Anda harus mengikuti beberapa spesifikasi anotasi yang ditentukan oleh Java untuk menghasilkan dokumen standar.
1. Komentar standar tentang metode kelas java
Mari kita mulai dengan komentar pada metode kelas.
/*** Baca satu baris teks. Suatu garis dianggap diakhiri oleh salah satu * dari umpan baris ('/n'), pengembalian kereta ('/r'), atau pengembalian kereta * diikuti segera oleh lineefeed. * * @param ignorelf1 Jika benar, yang berikutnya '/n' akan dilewati <pre code_snippet_id = "74911" snippet_file_name = "blog_20131120_2_8365599 Name =" name "> @param ignorelf2 Jika benar, berikutnya/n name =" NoT "> @param Ignorelf2 Jika benar, berikutnya/n 'akan dicairkan" Setiap karakter terminasi garis, atau nol jika akhir aliran * telah tercapai * * @see java.io.linenumberreader#readline () * * @Exception IOException Jika kesalahan I/O terjadi */ (Jangan perhatikan makna komentar di atas, cukup fokus pada gaya definisinya)
1. Pertama -tama lihat bagian atas "Baca satu baris teks. Baris ..". Paragraf ini adalah deskripsi dari metode ini.
Bagian sebelum periode pertama, yaitu "Baca baris teks." akan muncul di "Metode Ringkasan"
2. @param mendefinisikan parameter input dari metode ini, yang (beberapa dapat ditambahkan) muncul dalam "Metode Rincian". (Parameter dan deskripsi parameter dipisahkan oleh spasi, dan dikonversi ke - dalam dokumen yang dihasilkan)
3. @Return Deskripsi nilai pengembalian
4. Uraian Referensi @See
5. Deskripsi @Exception yang dilemparkan oleh pengecualian itu indah. Berbagai jenis tag dapat ditampilkan dalam satu baris, seperti @param dan @return secara langsung mengosongkan satu baris.
2. Komentar Standar Kelas Java
Format anotasi kelas dan anotasi metode pada dasarnya sama. Apa bedanya:
1. Penempatannya berbeda. Anotasi kelas ditempatkan di atas definisi kelas, dan anotasi metode ditempatkan di atas definisi metode.
2. Perbandingan anotasi kelas menggunakan tag seperti @Version @author @since.
Lihat template
/** akan buffer input dari file yang ditentukan. Tanpa buffering, masing -masing * doa baca () atau readline () dapat menyebabkan byte dibaca dari file *, dikonversi menjadi karakter, dan kemudian dikembalikan, yang bisa sangat * melekat. * * Deskripsi tes * * <p> Program yang menggunakan DataInputStreams untuk input tekstual dapat dilokalisasi dengan * mengganti setiap datalputputStream dengan bufferedReader yang sesuai. * * @see filereader * @see inputStreamReader * * @Version 0.1, 11/20/13 * @author Oscar999 * @since jdk1.5 */
Efek yang ditampilkan dalam DOC adalah:
Demikian pula, kalimat pertama dari deskripsi muncul di "Classial".
Detail kelas ditampilkan sebagai berikut:
Perlu dicatat bahwa penggunaan <p> dalam deskripsi. Jika <p> tidak ditambahkan, tidak peduli apakah ada baris baru dalam kode Java, dokumen yang dihasilkan tidak akan baru. Jika <p> ditambahkan, baris baru muncul di DOC.
3. Suplemen
Untuk menambahkan, metode untuk menghasilkan Javadoc:
1. Metode garis bernama: parameter javadoc +
2. Gunakan IDE ECLIPSE untuk mengekspor jika di IDE ECLIPSE, klik kanan pada file atau proyek sumber, pilih Export --->
Java -> Javadoc dapat dihasilkan.