Salam semua, ini adalah artikel pertama saya, saya harap dapat meringkaskan pengetahuan yang saya pelajari dan akan saya kongsikan dengan anda pada masa akan datang siri Java, Python dan artikel berkaitan peringkat kemasukan lain, dan kongsikannya dengan cara yang sistematik Hanya dengan mengukuhkan asas anda boleh pergi lebih jauh. Saya harap anda semua akan memberi saya nasihat! Tanpa berlengah lagi, mari kita beralih kepada perkara praktikal! (Jika terdapat sebarang pelanggaran yang terlibat, sila hubungi saya melalui platform ini untuk memadam)
XML sebagai fail konfigurasi popular di kalangan kebanyakan pengaturcara Walau bagaimanapun, sesetengah orang lebih suka menggunakan anotasi Malah, saya secara peribadi merasakan bahawa pilihan itu bukan perkara utama untuk memahami intipati setiap teknologi sebagai fail konfigurasi dan kod berganding" penerangan kod, tetapi apabila konfigurasi XML Apabila terdapat terlalu banyak fail, ia adalah sukar untuk diurus. Pada masa yang sama, IDE tidak dapat mengesahkan ketepatan fail konfigurasi XML, yang meningkatkan kesukaran ujian. Anotasi adalah "ketat digandingkan" perihalan kod, dan tujuannya adalah untuk menjadikan aplikasi lebih mudah dikembangkan sementara juga konfigurasi "Sifar".
1. Apakah anotasi?
Anotasi ialah anotasi, iaitu metadata dalam kod (metadata: data yang menerangkan data, Pembangun program boleh membenamkan beberapa maklumat tambahan dalam fail sumber tanpa mengubah logik asal. Sila lihat coretan kod berikut:
Bagi pemula, mereka sering melihat kod yang serupa dan tertanya-tanya apa sebenarnya @Override? Sebenarnya, ia adalah anotasi. Menambah @Override pada kaedah toString() bermakna kaedah toString() di bawah anotasi mesti membina semula kaedah kelas induk.
Selepas melihat ini, saya rasa sesetengah orang akan berfikir bahawa saya akan memperkenalkan pelbagai anotasi kepada anda seterusnya? ! saya tidak!
2. Piawaian sintaks jenis anotasi
Anotasi ialah jenis khas dalam Java Seterusnya, mari kita lihat cara mereka bentuk jenis anotasi.
1. Standard tatabahasa:
public @interface 注解类型名称 { [ 数据类型 变量名 () [ default 初始值 ]; ] }
Nota:
1) Kandungan dalam "[ ]" adalah pilihan Jika anotasi kosong, ia bermaksud Arus anotasi ialah anotasi pengenalan.
2) Anotasi secara bijak memasukkan pembolehubah dan tidak boleh memasukkan kaedah.
3) Anotasi ialah tanda khas dalam kod dan tidak boleh digunakan secara bersendirian. Ia perlu digunakan bersama dengan kelas atau antara muka.
4) Jenis anotasi boleh digunakan untuk menetapkan metadata untuk elemen program (elemen program: kelas, kaedah, pembolehubah ahli, dll.).
2. Kes: Reka bentuk jenis anotasi Boleh Diuji, dan kaedah yang dikenal pasti oleh anotasi ini ialah kaedah yang boleh diuji. Anotasi kosong secara dalaman, menunjukkan bahawa anotasi ialah anotasi pengenalan.
public @interface Testable { }
public class Test { @Testable public void info() { System.out.println(“我是info方法”); } public void info1() { System.out.println(“我是info1方法”); } }
Anotasi @Testable ditambahkan pada kelas ini untuk menunjukkan bahawa kaedah info ialah kaedah boleh laku Ia hanya menerangkan bahawa kaedah itu ialah kaedah boleh laku dan tidak mempunyai sebarang dinamik keupayaan, jika anda ingin mencapai fungsi anotasi ini, anda mesti menulis aplikasi Java sokongan Untuk kod tertentu, sila rujuk kod berikut.
Anda boleh fikirkan, jika kita ingin menghuraikan struktur dalaman kelas, apakah teknologi yang boleh kita gunakan untuk mencapainya?
Jawapannya ialah: mekanisme refleksi (bagi rakan yang kurang jelas tentang mekanisme pantulan dalam perenggan berikut, sila ikuti kod di bawah untuk nyahpepijat. Pengetahuan khusus tentang mekanisme pantulan akan dikeluarkan kemudian).
Kelas alat biasa dengan fungsi refleksi dalam pakej java.lang.reflect: Kaedah (kelas kaedah), Medan (kelas medan), Pembina (kelas kaedah pembina), dsb.
Kelas alat di atas mengembangkan keupayaan untuk membaca anotasi masa jalan, iaitu, melaksanakan antara muka java.lang.annotation.AnnotatedElement antara muka ini ialah antara muka induk bagi semua elemen program, dan antara muka ini menyediakan fungsi untuk mendapatkan kaedah berkaitan maklumat anotasi.
getAnnotation(Class
Anotasi [] getAnnotations(): Mengembalikan semua anotasi yang wujud pada elemen program.
Anotasi ialah antara muka induk bagi semua anotasi Secara lalai, mana-mana jenis antara muka melaksanakan antara muka ini.
boolean isAnnotationPresent(Class Extends Annotation> annotationClass): Menentukan sama ada elemen atur cara mengandungi anotasi daripada jenis yang ditentukan.
Rujukan kod:
Uraikan kelas Ujian dan laksanakan kaedah yang ditandakan dengan @Testable.
import java.lang.reflect.Method; public class UseTest { public static void main(String[] args)throws Exception { Class c=Class.forName(“Test”); Object o=c.newInstance(); Method[] me=c.getDeclaredMethods(); for(Method temp:me) { if(temp.isAnnotationPresent(Testable.class)) temp.invoke(o,new Object[0]); } } }
Baiklah, sekarang anda boleh menjalankan program dan lihat kesannya!
. . . . . . .
Bukankah anda terdiam (ˉ▽ˉ;)..., dengan melaksanakan kod, anda akan mendapati bahawa program itu tidak mempunyai hasil, yang berbeza daripada apa yang kami fikirkan? !
Jika anda ingin tahu apa yang berlaku pada masa akan datang, sila baca pecahan seterusnya!
3. Rumusan:
Seterusnya mari kita rumuskan perkara-perkara ilmu yang perlu dikuasai oleh rakan-rakan.
1. Perbezaan antara XML dan anotasi
2. Apakah itu anotasi
3. Piawaian sintaks untuk reka bentuk anotasi
4 >
5. Kaedah dan fungsi java.lang.annotation.AnnotationElement4. . Ini adalah kali pertama Apabila saya menulis artikel, saya tidak tahu bagaimana format kandungannya. Sila baca artikel seterusnya untuk pengetahuan yang berkaitan. Terima kasih atas sokongan anda.
Atas ialah kandungan terperinci Anotasi Java - fail konfigurasi Java sendiri. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!