Artikel ini membawa anda pengetahuan yang berkaitan tentang java, yang terutamanya memperkenalkan isu yang berkaitan dengan anotasi dan meta-anotasi, termasuk pengenalan asas kepada anotasi, pengenalan asas kepada Anotasi, dsb. Mari kita lihat bersama-sama, saya harap ia akan membantu semua orang.
Kajian yang disyorkan: "tutorial video java"
Anotasi, juga dikenali sebagai metadata, diperkenalkan dalam JDK1.5 dan versi yang lebih baru dan digunakan untuk mengubah suai dan mentafsir maklumat data seperti pakej, kelas, kaedah, sifat, pembina dan pembolehubah setempat. Ia boleh digunakan untuk membuat dokumentasi, menjejak kebergantungan dalam kod anda, dan juga melakukan semakan masa kompilasi asas.
Anotasi wujud dalam kod dengan '@nama anotasi' Menurut bilangan parameter anotasi, kami boleh membahagikan anotasi kepada tiga kategori: anotasi tanda, anotasi nilai tunggal dan anotasi lengkap. baik hati. Seperti komen, anotasi tidak menjejaskan logik program, tetapi ia boleh disusun atau dijalankan dan bersamaan dengan maklumat tambahan yang dibenamkan dalam kod.
Selain itu, anda boleh memilih sama ada anotasi dalam kod hanya wujud pada tahap kod sumber semasa penyusunan, atau ia juga boleh muncul dalam fail kelas atau masa jalan (SOURCE/CLASS/ RUNTIME ).
Dalam JavaSE, tujuan menggunakan anotasi agak mudah, seperti menandakan fungsi usang, mengabaikan amaran, dsb. Anotasi memainkan peranan yang lebih penting dalam Java EE, seperti digunakan untuk mengkonfigurasi sebarang aspek aplikasi, menggantikan kod rumit dan konfigurasi XML yang ditinggalkan dalam versi lama Java EE.
@Override : Untuk mengehadkan kaedah ialah mengatasi kaedah kelas induk , Anotasi ini hanya boleh digunakan pada kaedah
@Dihentikan : digunakan untuk mewakili elemen atur cara tertentu ( Kategori , Kaedah, dsb. ) Lapuk
@SuppressWarnings : Sekat amaran pengkompil
@Override <.>
class Son extends Father{ @Override public void play(){} }
Nota:
@Override menunjukkan bahawa kaedah main subkelas mengatasi kaedah main kelas induk
Jika tiada tulisan di sini @Override Ia masih akan mengatasi lapisan kelas induk
Jika anda menulis anotasi @Override, pengkompil akan menyemak sama ada kaedah itu benar-benar mengatasi kelas induk Kaedah, jika ia benar-benar ditulis semula, kompilasi akan lulus; jika ia tidak ditulis semula, ralat kompilasi akan berlaku.
@Override hanya boleh mengubah suai kaedah, bukan kelas lain, pakej, sifat, dsb.
@Dihentikan
@Deprecated class A{ @Deprecated public static int name = 1; @Deprecated public void play(){ } }
Nota:
Ia bukan tidak boleh menggunakannya ketinggalan zaman, tetapi ia tidak disyorkan, tetapi anda masih boleh menggunakan
Medan, pakej, parameter, dsb.
Ia boleh mencapai keserasian dan peralihan versi baharu dan lama
Tekan Amaran 注意: 关于 SuppressWarnings 作用范围是和你放置的位置相关。比如@SuppressWarnings 放置在 main 方法,那么抑制警告的范围就是 main 通过 @SuppressWarnings 的源码可知,其注解目标为类、字段、函数、函数入参、构造函数和函数的局部变量。 ▶ Apakah meta-anotasi: Meta-anotasi ialah anotasi yang menerangkan anotasi yang mereka anotasikan ialah anotasi yang kami perkenalkan sebelum ini, seperti: @Override, @Deprecated, <.>@SuppressWarnings ▶ Empat anotasi meta: Pengekalan: Nyatakan skop anotasi, tiga jenis SOURCE, CLASS, RUNTIME Sasaran: Nyatakan tempat anotasi boleh digunakan Didokumentasikan: Nyatakan sama ada anotasi akan ditunjukkan dalam javadoc Diwarisi:
▶ Nota tentang anotasi:
, anotasi akan wujud dalam fail bytecode kelas, tetapi tidak boleh diperoleh pada masa jalan 🎜> 2. Anotasi pengekalan Penjelasan:
digunakan untuk menentukan Anotasi Polisi Pengekalan, apabila menggunakan @Rentention ia mestilah nilai Pembolehubah ahli menentukan nilai (terdapat tiga jenis nilai). Tiga nilai: Polisi Pengekalan.SUMBER: Selepas pengkompil menggunakannya, ia terus membuang ulasan dasar ini.
Polisi Pengekalan.KELAS: Pengkompil akan merekodkan anotasi dalam kelas
Dalam fail
Apabila berlari
Jawa
Prosedur
, JVM
Anotasi tidak akan disimpan. Ini ialah nilai lalai.
Polisi Pengekalan.MASA JALANKAN: Pengkompil akan merekodkan anotasi dalam kelas
Dalam fail
.
Apabila berlari
Jawa
Semasa program
, JVM
Anotasi akan dikekalkan
.
Program boleh mendapatkan anotasi ini melalui refleksi.
3. Anotasi sasaran digunakan untuk mengubah suai takrifan Anotasi, menyatakan elemen program mana Anotasi diubah suai boleh digunakan untuk mengubah suai. @Target juga mengandungi pembolehubah ahli bernama nilai. 4 Anotasi yang didokumenkan @Documented: Digunakan untuk menyatakan bahawa kelas Anotasi yang diubah suai oleh meta-anotasi ini akan diekstrak ke dalam dokumen oleh alat javadoc, iaitu anotasi boleh dilihat apabila dokumen dijana. Nota: Anotasi yang ditakrifkan sebagai @Documented mesti menetapkan nilai Pengekalan kepada RUNTIME. 5. Anotasi warisan Anotasi yang diubah suai oleh @Inherited akan mempunyai warisan Jika kelas menggunakan anotasi yang diubah suai oleh @Inherited, subkelasnya akan mempunyai warisan secara automatik Anotasi ini<.> mengesyorkan pembelajaran: "tutorial video java"@SuppressWarnings ("all")
public class word{ }
三、@SuppressWarnings的指定警告类型
关键字
解释
all
抑制所有警告
boxing
抑制与封装/拆装作业相关的警告
cast
抑制与强制转型作业相关的警告
dep-ann
抑制与淘汰注释相关的警告
deprecation
抑制与淘汰的相关警告
fallthrough
抑制与 switch 陈述式中遗漏 break 相关的警告
finally
抑制与未传回 finally 区块相关的警告
hiding
抑制与隐藏变数的区域变数相关的警告
incomplete-switch
抑制与 switch 陈述式(enum case)中遗漏项目相关的警告
javadoc
抑制与 javadoc 相关的警告
nls
抑制与非 nls 字串文字相关的警告
null
抑制与空值分析相关的警告
rawtypes
抑制与使用 raw 类型相关的警告
resource
抑制与使用 Closeable 类型的资源相关的警告
restriction
抑制与使用不建议或禁止参照相关的警告
serial
抑制与可序列化的类别遗漏 serialVersionUID 栏位相关的警告
static-access
抑制与静态存取不正确相关的警告
static-method
Sekat amaran yang berkaitan dengan kaedah yang mungkin diisytiharkan sebagai statik
super
Sekat amaran yang berkaitan dengan kaedah penggantian tanpa panggilan super
akses sintetik
Sekat amaran yang berkaitan dengan akses tidak dioptimumkan kepada kelas dalaman
unqualified-field-access
Hentikan amaran berkaitan dengan akses medan gagal
tidak digunakan
Sekat amaran yang berkaitan dengan kod yang tidak digunakan dan dinyahaktifkan
4. Meta-anotasi
1. Pengenalan asas
. Pertama sekali, kita mesti menjelaskan panjang kitaran hayat SUMBER < ①: Secara amnya, jika anda perlu mendapatkan maklumat anotasi secara dinamik pada
masa jalan
, anda hanya boleh menggunakan anotasi RUNTIME; ②: Jika anda ingin mendapatkannya di
masa kompilasi
Untuk melaksanakan beberapa operasi prapemprosesan, seperti menjana beberapa kod tambahan (seperti ButterKnife), gunakan anotasi CLASS; SuppressWarnings, anda boleh menggunakan anotasi SOURCE.
hanya boleh digunakan untuk mengubah suai definisi Anotasi,
Penjelasan:
Penjelasan:
Penjelasan:
Atas ialah kandungan terperinci Penjelasan terperinci tentang mata pengetahuan java: anotasi dan meta-anotasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!