Panduan Anotasi Tersuai Buat anotasi tersuai dalam Java menggunakan kata kunci @interface. Gunakan anotasi tersuai untuk menentukan masa pengekalan dan lokasi aplikasi anotasi melalui @Retention dan @Target. Gunakan refleksi untuk mendapatkan nilai anotasi, dapatkan anotasi medan melalui getDeclaredField dan dapatkan objek anotasi menggunakan kaedah getAnnotation. Dalam amalan, anotasi tersuai boleh digunakan untuk menandakan kaedah yang memerlukan pengelogan, dan anotasi boleh disemak pada masa jalan melalui refleksi.
Gunakan anotasi tersuai dalam kod Java
Pengenalan
Anotasi tersuai ialah alat yang berkuasa untuk menambahkan metadata dalam kod Java. Mereka membenarkan anda menambah maklumat tambahan pada bahagian lain program anda untuk pemprosesan atau analisis kemudian. Artikel ini akan membimbing anda tentang cara membuat, menggunakan dan memproses anotasi tersuai dalam kod Java.
Buat anotasi tersuai
Untuk membuat anotasi tersuai, anda perlu menggunakan kata kunci @interface
. Berikut ialah contoh membuat anotasi tersuai bernama @MyAnnotation
: @interface
关键字。以下是一个创建名为 @MyAnnotation
的自定义注解的示例:
import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface MyAnnotation { String value() default "default"; }
@Retention(RetentionPolicy.RUNTIME)
:指定注解在运行时可用。这意味着注解可以在反射中访问。@Target(ElementType.FIELD)
:指定注解只能应用于字段。使用自定义注解
要使用自定义注解,请在您要附加元数据的字段上添加它。以下是如何使用 @MyAnnotation
public class MyClass { @MyAnnotation("custom value") private String myField; }
@Retention(RetentionPolicy.RUNTIME)
: Menentukan anotasi pada runtime Available. Ini bermakna anotasi boleh diakses dalam refleksi. @Target(ElementType.FIELD)
: Menentukan bahawa anotasi hanya boleh digunakan pada medan. Menggunakan Anotasi Tersuai
Untuk menggunakan anotasi tersuai, tambahkannya pada medan yang ingin anda tambahkan metadata. Begini cara menggunakan medan anotasi@MyAnnotation
: Class myClass = MyClass.class; Field myField = myClass.getDeclaredField("myField"); MyAnnotation annotation = myField.getAnnotation(MyAnnotation.class); String value = annotation.value(); System.out.println(value); // 输出:"custom value"
Mengendalikan anotasi tersuai
Anda boleh menggunakan refleksi untuk mengendalikan anotasi tersuai. Begini cara untuk mendapatkan semula nilai anotasi:@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Loggable { }
Satu kes praktikal
Berikut ialah kes praktikal yang menunjukkan cara menggunakan anotasi tersuai untuk menandakan kaedah yang memerlukan pengelogan:Buat anotasi tersuai
public class MyClass {
@Loggable
public void myMethod() {
// ...
}
}
melanjutkan anotasi
import java.lang.reflect.Method; public class AnnotationProcessor { public static void main(String[] args) throws Exception { Class myClass = MyClass.class; Method myMethod = myClass.getDeclaredMethod("myMethod"); Loggable annotation = myMethod.getAnnotation(Loggable.class); if (annotation != null) { System.out.println("Method is annotated with @Loggable"); } } }Memproses anotasi🎜🎜
Method is annotated with @Loggable🎜Apabila dijalankan, atur cara mencetak output berikut: 🎜rrreee
Atas ialah kandungan terperinci Bagaimana untuk menggunakan anotasi tersuai dalam kod Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!