Rumah > Java > javaTutorial > Bolehkah Nilai Anotasi Dibaca dalam Kelas Berbeza pada Runtime di Java?

Bolehkah Nilai Anotasi Dibaca dalam Kelas Berbeza pada Runtime di Java?

Linda Hamilton
Lepaskan: 2024-10-26 06:15:02
asal
787 orang telah melayarinya

Can Annotation Values Be Read in a Different Class at Runtime in Java?

Mendapatkan Nilai Anotasi dalam Java

Anotasi Java menawarkan cara yang mudah untuk menyediakan metadata tentang elemen kod. Dalam senario tertentu, anda mungkin perlu mengakses nilai anotasi ini semasa masa jalan. Terutamanya, persoalan timbul:

Bolehkah anotasi dengan pengekalan masa jalan dibaca dalam kelas lain di Java?

Jawapannya ya, dengan syarat anotasi itu dianotasi dengan @Retention(RetentionPolicy.RUNTIME). Ini menunjukkan bahawa anotasi harus tersedia pada masa jalan, di luar penyusunan.

Pertimbangkan coretan kod berikut:

<code class="java">@Column(columnName="firstname")
private String firstName;

@Column(columnName="lastname")
private String lastName;</code>
Salin selepas log masuk

Untuk mendapatkan semula nilai anotasi dalam kelas lain, anda boleh menggunakan refleksi:

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

Jika anda perlu mengakses medan peribadi, anda boleh menggunakan getDeclaredFields():

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

Kod ini bergelung melalui medan MyClass, menyemak anotasi @Column pada setiap medan. Jika anotasi ditemui, ia mencetak nilai atribut columnName.

Atas ialah kandungan terperinci Bolehkah Nilai Anotasi Dibaca dalam Kelas Berbeza pada Runtime di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan