Rumah  >  Artikel  >  Java  >  Bolehkah Anda Mengakses Nilai Anotasi daripada Kelas Berbeza di Java?

Bolehkah Anda Mengakses Nilai Anotasi daripada Kelas Berbeza di Java?

Linda Hamilton
Linda Hamiltonasal
2024-10-26 10:11:02266semak imbas

Can You Access Annotation Values from a Different Class in Java?

Mengakses Nilai Anotasi Secara Luaran

Di Java, adakah ia boleh dilakukan untuk mendapatkan semula nilai anotasi yang ditakrifkan dalam satu kelas dalam kelas lain?

Sebagai contoh, pertimbangkan anotasi berikut dan kaedah pengaksesnya yang sepadan:

<br>@Column(columnName="firstname")<br>private String firstName;</p>
<p>@Column(columnName= "nama akhir")<br>Nama Akhir Rentetan peribadi;</p>
<p>String awam getFirstName() {<br> return firstName;<br>}</p>
<p>public void setFirstName(String firstName) {<br> this.firstName = firstName;<br>}</p>
<p>public String getLastName() {<br> return lastName;<br>}</p>
<p>public void setLastName(String lastName) {<br> this .lastName = lastName;<br>}<br>

Adakah mungkin untuk memastikan nilai "columnName" anotasi @Column daripada kelas berasingan?

Ya , adalah mungkin jika anotasi @Column menentukan pengekalan masa jalan menggunakan @Retention(RetentionPolicy.RUNTIME). Begini caranya:

<code class="java">for (Field f: MyClass.class.getFields()) {
   Column column = f.getAnnotation(Column.class);
   if (column != null)
       System.out.println(column.columnName());
}</code>

Perhatikan bahawa MyClass.class.getFields() hanya mengambil medan awam. Untuk mengakses medan peribadi, gunakan MyClass.class.getDeclaredFields().

Atas ialah kandungan terperinci Bolehkah Anda Mengakses Nilai Anotasi daripada Kelas Berbeza di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn