Mendapatkan Nilai Medan Anotasi dalam Kelas Java
Dalam pengaturcaraan Java, anotasi ialah metadata yang dilampirkan pada kelas, kaedah atau medan. Anotasi ini boleh memberikan maklumat tambahan tentang struktur atau gelagat kod. Walaupun anotasi ini biasanya digunakan untuk mencetuskan kefungsian tertentu atau memberikan petunjuk kepada alat penyusunan, mungkin terdapat keadaan di mana anda perlu membaca nilai yang disimpan dalam anotasi ini. Artikel ini menunjukkan cara untuk mencapai matlamat ini.
Pertimbangkan contoh berikut:
<code class="java">@Column(columnName="firstname") private String firstName; @Column(columnName="lastname") private String lastName;</code>
Dalam kod ini, anotasi @Column digunakan untuk menentukan nama lajur yang dikaitkan dengan medan yang sepadan. Sekarang, mari kita mendalami soalan yang dibangkitkan:
Bolehkah anda membaca nilai anotasi @Column dalam kelas lain?
Jawapannya afirmatif. Walau bagaimanapun, fungsi ini bergantung pada dasar pengekalan anotasi. Anotasi @Column mesti menyatakan RetentionPolicy.RUNTIME untuk membolehkan akses kepada nilainya melebihi masa penyusunan. Ubah suai anotasi @Column seperti berikut:
<code class="java">@Retention(RetentionPolicy.RUNTIME) @interface Column { String columnName(); }</code>
Dengan dasar pengekalan masa jalan yang ditetapkan, anda boleh mendapatkan semula nilai anotasi menggunakan refleksi. Berikut ialah contoh:
<code class="java">for (Field f : MyClass.class.getFields()) { Column column = f.getAnnotation(Column.class); if (column != null) System.out.println(column.columnName()); }</code>
Dengan mengulangi medan kelas MyClass dan memeriksa setiap anotasi medan, anda boleh mengekstrak nilai anotasi @Column.
Nota: Jika medan anda diisytiharkan peribadi, gunakan getDeclaredFields() dan bukannya getFields().
Kaedah ini menyediakan cara untuk mengakses dan memproses maklumat yang terkandung dalam anotasi, memperluaskan fleksibiliti dan kebolehlanjutan kod anda.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai daripada Anotasi dalam Kelas Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!