Saya menemukan masalah ini sehingga saya tanpa mengetahui enum
tipe sebenarnya yang saya butuhkan untuk mengulangi kemungkinan nilainya.
if (value instanceof Enum){
Enum enumValue = (Enum)value;
}
Ada ide bagaimana mengekstrak dari enumValue kemungkinan nilainya?
getClass()
suatuenum
objek dapat mengembalikan subtipe darienum
tipe itu sendiri (jika, katakanlah,enum
konstanta menimpa metode darienum
tipe).getDeclaringClass()
mengembalikanenum
tipe yang menyatakan konstanta itu, yang Anda inginkan di sini.Atau
sumber
YourEnumClass[] yourEnums = YourEnumClass.class.getEnumConstants();
memecahkan masalah saya menelepon dari metode non-statis.Enum
s sama sepertiClass
es yang diketik. Kode Anda saat ini hanya memeriksa apakah itu adalah Enum tanpa menentukan jenis Enum itu.Karena Anda belum menentukan jenis enum, Anda harus menggunakan refleksi untuk mencari tahu apa daftar nilai enum itu.
Anda bisa melakukannya seperti ini:
Ini akan mengembalikan larik objek Enum, dengan masing-masing menjadi salah satu opsi yang tersedia.
sumber
nilai metode enum
enum.values () yang mengembalikan semua instance enum.
http://javaexplorer03.blogspot.in/2015/10/name-and-values-method-of-enum.html
sumber
... atau MyEnum.values ()? Atau apakah saya melewatkan sesuatu?
sumber
Di sini, Peran adalah enum yang berisi nilai berikut [ADMIN, USER, OTHER].
sumber
Anda juga bisa menggunakan java.util.EnumSet seperti ini
sumber