Di Java, anotasi diperkenalkan di Java 5 dan digunakan untuk menggambarkan informasi meta kode Java. Biasanya, anotasi tidak akan secara langsung mempengaruhi pelaksanaan kode, meskipun beberapa anotasi dapat digunakan untuk mempengaruhi pelaksanaan kode.
Apa yang bisa dilakukan dengan anotasi
Anotasi di Java biasanya memainkan peran berikut
di dalam
Dasar -dasar Anotasi
Anotasi Java sederhana mirip dengan @Entity. Di mana @ berarti memberi tahu kompiler bahwa ini adalah anotasi. Entitas adalah nama anotasi. Biasanya dalam file, metode penulisan adalah sebagai berikut
PUBLIK @Interface Entity {
}
Elemen anotasi
Anotasi Java dapat menggunakan elemen untuk menetapkan beberapa nilai, dan elemen dalam anotasi mirip dengan atribut atau parameter. Kode contoh untuk mendefinisikan anotasi yang mengandung elemen
PUBLIK @Interface Entity {
String tableName ();
}
Kode sampel menggunakan elemen yang mengandung anotasi
@Entity (TableName = "Kendaraan")
Nama elemen dari anotasi di atas adalah TableName dan set value adalah kendaraan. Anotasi tanpa elemen tidak memerlukan tanda kurung.
Jika anotasi berisi beberapa elemen, metode penggunaan adalah sebagai berikut
@Entity (TableName = "Kendaraan", PrimaryKey = "ID")
Jika anotasi hanya memiliki satu elemen, kami biasanya menulisnya seperti ini
@InsertNew (value = "yes")
Tetapi dalam hal ini, jika dan hanya jika nama elemen adalah nilai, kita juga dapat menyingkatnya, yaitu, tidak perlu mengisi nilai nama elemen, efeknya adalah sebagai berikut
@InsertNew ("ya")
Penggunaan anotasi
Anotasi dapat digunakan untuk memodifikasi elemen -elemen ini dalam kode
Contoh lengkap penggunaan adalah sebagai berikut
@EntityPublic Class Vehicle {@Persistent string vehiclename = null; @Getter public string getvehicLename () {return this.vehicLename; } public void setVehicLename (@Optional Vehiclename) {this.vehicLename = kendaraan; } daftar publik addVehicLenametolist (nama daftar) {@Optional list localnames = nama; if (localnames == null) {localnames = new arraylist (); } localnames.add (getvehicLename ()); mengembalikan nama lokal; }}Anotasi Java bawaan
Ada tiga anotasi bawaan di Java yang digunakan untuk memberikan instruksi untuk kompiler. Mereka
@Deprecated
Dapat digunakan untuk menandai kelas, metode, dan properti.
Jika tiga elemen di atas tidak lagi digunakan, gunakan anotasi @Deprecated. Jika kode menggunakan kelas, metode atau properti anotasi @Deprecated, kompiler akan memperingatkan Anda.
@Deprecated sangat mudah digunakan, sebagai berikut: anotasi kelas yang sudah usang.
@DeprecatedPublic Class myComponent {}Ketika kami menggunakan anotasi @Deprecated, disarankan untuk menggunakan simbol @Deprecated Javadoc bersamaan dengannya dan menjelaskan mengapa kelas, metode, atau properti ini sudah usang dan apa alternatifnya.
@Deprecated/** @Deprecated kelas ini penuh dengan bug. Gunakan myNewComponent sebagai gantinya.*/Kelas publik myComponent {}@Mengesampingkan
Anotasi @Override digunakan untuk memodifikasi metode penulisan ulang kelas induk. Jika metode yang tidak mengganti kelas induk menggunakan anotasi ini, kompiler akan meminta kesalahan.
Faktanya, @Overide tidak diperlukan untuk mengganti metode kelas induk atau antarmuka dalam subkelas. Namun, masih disarankan untuk menggunakan anotasi ini. Dalam beberapa kasus, dengan asumsi bahwa Anda memodifikasi nama metode kelas induk, metode subclass yang ditulis ulang sebelumnya tidak akan lagi ditulis ulang. Tanpa @Overide, Anda tidak akan melihat metode subclass ini. Dengan modifikasi anotasi ini, kompiler akan meminta Anda dengan informasi ini.
Contoh menggunakan anotasi override
kelas publik mySuperclass {public void dothething () {System.out.println ("Do the Thing"); }} kelas publik mysubclass memperluas mySuperclass {@Override public void dothething () {System.out.println ("lakukan secara berbeda"); }}@SuppressWarnings
@SuppressWarnings digunakan untuk menekan kompiler dari menghasilkan pesan peringatan.
Elemen yang dapat dimodifikasi adalah kelas, metode, parameter metode, atribut, dan variabel lokal
Skenario Penggunaan: Ketika suatu metode memanggil metode yang sudah usang atau melakukan konversi tipe yang tidak aman, kompiler akan menghasilkan peringatan. Kami dapat menambah metode ini
@SuppressWarnings Anotasi untuk menekan peringatan generasi kompiler.
Catatan: Gunakan anotasi @suppresswarnings dan adopsi prinsip kedekatan. Misalnya, jika suatu metode memiliki peringatan, kami mencoba menggunakan @suppresswarnings untuk membuat anotasi metode ini, daripada anotasi kelas di mana metode ini berada. Meskipun keduanya dapat menekan kompiler dari menghasilkan peringatan, semakin kecil ruang lingkup, semakin baik, karena ruang lingkupnya lebih besar, yang tidak kondusif untuk menemukan informasi peringatan dari metode lain di bawah kelas ini.
Contoh penggunaan
@SuppressWarningsPublic void MethodWithWarning () {}Buat anotasi Anda sendiri
Di Java, kami dapat membuat anotasi, anotasi dan kelas kami sendiri, dan file antarmuka didefinisikan dalam file kami sendiri. sebagai berikut
@Interface myannotation {string value (); Nama string (); int usia (); String [] newNames ();}Kode di atas mendefinisikan anotasi yang disebut myannotation, yang memiliki 4 elemen. Sekali lagi, kata kunci @Interface digunakan untuk memberi tahu kompiler Java bahwa ini adalah anotasi.
Jika Anda melihat lebih dekat, Anda akan menemukan bahwa definisi elemen anotasi sangat mirip dengan metode antarmuka. Elemen -elemen ini memiliki jenis dan nama. Tipe ini bisa
Berikut ini adalah anotasi khusus aplikasi
@Myannotation (value = "123", name = "jakob", usia = 37, newnames = {"jenkov", "peterson"}) kelas publik myclass {}Perhatikan bahwa kita perlu menetapkan nilai untuk semua elemen anotasi, dan tidak ada yang bisa hilang.
Nilai default elemen anotasi
Untuk elemen dalam anotasi, kami dapat menetapkan nilai default untuk mereka, menggunakan metode ini
@Interface myannotation {string value () default ""; Nama string (); int usia (); String [] newNames ();}Dalam kode di atas, kami mengatur nilai default elemen nilai ke string kosong. Ketika kita menggunakannya, kita tidak dapat mengatur nilai, yaitu, biarkan nilai menggunakan nilai default dari string kosong. Gunakan kode sampel
@Myannotation (name = "jakob", usia = 37, newNames = {"jenkov", "peterson"}) kelas publik myclass {}@Penyimpanan
@Retention adalah anotasi yang digunakan untuk memodifikasi anotasi. Menggunakan anotasi ini, kita bisa melakukannya.
Kontrol apakah anotasi ditulis ke file kelas untuk mengontrol apakah anotasi dalam file kelas terlihat saat runtime
Kontrol sederhana, cukup gunakan salah satu dari tiga strategi berikut.
RetentionPolicy. Sumber menunjukkan bahwa anotasi hanya ada dalam kode sumber, tidak ada. File kelas, dan tidak dapat terlihat selama runtime. Anotasi umum adalah @Override, @suppresswarnings.
Retensipolicy.class Ini adalah kebijakan retensi anotasi default. Di bawah strategi ini, anotasi akan ada dengan file .class, tetapi tidak dapat diakses saat runtime. Biasanya strategi anotasi ini digunakan untuk beroperasi pada tingkat kode bytec.
RetentionPolicy.runtime dapat diakses saat runtime berdasarkan kebijakan ini. Seringkali, kita melakukan sesuatu dalam kombinasi dengan refleksi.
Contoh penggunaan @retention
Impor java.lang.annotation.retention; impor java.lang.annotation.RetentionPolicy; @retention (retentionpolicy.runtime) @interface myannotation {string value () default "";}@Target
Menggunakan anotasi @target, kami dapat mengatur elemen Java mana yang dapat dimodifikasi dengan anotasi khusus. Contoh sederhana
import java.lang.annotation.elementType; import java.lang.annotation.target; @Target ({elementType.method}) public @interface myannotation {string value ();}Kode di atas menunjukkan bahwa anotasi myannotation hanya dapat memodifikasi metode.
@Target dapat memilih nilai parameter sebagai berikut
@Inherit
Jika Anda ingin kelas dan subkelasnya mengandung anotasi, Anda dapat menggunakan @inHerited untuk memodifikasi anotasi ini.
java.lang.annotation.inheritited@inheritedpublic @interface myannotation {} 12@myannotationpublic kelas mysuperclass {...} kelas 1public mysubclass memperluas mysuperclass {...}Arti umum dari kode di atas adalah
1. Gunakan @inHerited untuk memodifikasi anotasi
2. Anotasi mysuperclass menggunakan myannotation
3. Menerapkan kelas MySubclass yang diwariskan dari Mysuperclass
Melalui langkah -langkah di atas, mySubclass juga memiliki anotasi myannotation.
Ini adalah beberapa konsep dasar tentang anotasi di Java.
Di atas adalah penyortiran anotasi di Java. Kami akan terus menambahkan informasi yang relevan di masa mendatang. Terima kasih atas dukungan Anda untuk situs ini!