Rumah > Java > javaTutorial > Bolehkah Anotasi Java Menggunakan Tatasusunan atau Pemalar sebagai Nilai Parameter?

Bolehkah Anotasi Java Menggunakan Tatasusunan atau Pemalar sebagai Nilai Parameter?

Barbara Streisand
Lepaskan: 2024-12-05 08:34:11
asal
605 orang telah melayarinya

Can Java Annotations Use Arrays or Constants as Parameter Values?

Nilai Malar dalam Anotasi Java

Adalah amalan biasa dalam Java untuk mentakrifkan antara muka yang menyimpan tatasusunan pemalar untuk digunakan sebagai parameter anotasi. Sebagai contoh, anda mungkin mempunyai antara muka seperti ini:

public interface FieldValues {
   String[] FIELD1 = new String[]{"value1", "value2"};
}
Salin selepas log masuk

Apabila menganotasi kelas, anda mungkin mahu menggunakan pemalar ini sebagai nilai parameter, seperti ini:

@SomeAnnotation(locations = {"value1", "value2"})
public class MyClass {
   ....
}
Salin selepas log masuk

Walau bagaimanapun, pendekatan ini memerlukan penentuan nilai rentetan dalam setiap contoh anotasi. Adalah lebih mudah untuk menggunakan pemalar secara langsung:

@SomeAnnotation(locations = FieldValues.FIELD1)
public class MyClass {
   ....
}
Salin selepas log masuk

Malangnya, Java tidak membenarkan penggunaan tatasusunan atau pemalar sebagai nilai parameter anotasi. Ini kerana anotasi diselesaikan pada masa penyusunan, dan hanya nilai atau rentetan primitif boleh digunakan sebagai pemalar masa kompilasi.

Oleh itu, tiada cara langsung untuk mencapai gelagat yang diingini dalam Java. Tatasusunan dalam FieldValues ​​tidak benar-benar tetap, kerana elemennya boleh diubah suai pada masa jalan oleh mana-mana kod yang mempunyai akses kepadanya. Untuk memastikan kebolehubahan sebenar, anda boleh mempertimbangkan untuk menggunakan kelas tidak berubah untuk membalut nilai rentetan.

Atas ialah kandungan terperinci Bolehkah Anotasi Java Menggunakan Tatasusunan atau Pemalar sebagai Nilai Parameter?. 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