Saya memiliki kelas berikut:
public class Test {
public static int a = 0;
public int b = 1;
}
Apakah mungkin menggunakan refleksi untuk mendapatkan daftar bidang statis saja? Saya sadar saya bisa mendapatkan array semua bidang dengan Test.class.getDeclaredFields()
. Tapi sepertinya tidak ada cara untuk menentukan apakah Field
turunan mewakili medan statis atau tidak.
java
reflection
static
field
Anders
sumber
sumber
Jawaban:
Anda dapat melakukannya seperti ini:
sumber
Saya menemukan pertanyaan ini secara tidak sengaja dan merasa dibutuhkan pembaruan Java 8 menggunakan stream:
Jelas, sampel itu sedikit diperindah untuk dibaca. Sebenarnya, Anda mungkin akan menulisnya seperti ini:
sumber
Jika Anda dapat menambahkan dependensi sumber terbuka ke proyek Anda, Anda juga dapat menggunakan FieldUtils.readDeclaredStaticField (Test.class, "a")
sumber
Sederhana, Anda dapat menggunakan Pengubah untuk memeriksa apakah suatu bidang statis atau tidak. Berikut adalah contoh kode untuk tugas semacam itu.
sumber