Enum için sınıf nesnesine sahibim (bir Class<? extends Enum>
var) ve bu numara tarafından temsil edilen numaraların bir listesini almam gerekiyor. values
statik işlevi ihtiyacım olan şeylere sahiptir, ancak sınıf nesnesinden ona nasıl erişileceğinden emin değilim.Java Enümleri: Bir Sınıfın <sayılarını listeleyiniz <? Enum>
49
A
cevap
90
10
Class#getEnumConstants() arayarak olarak basittir yansıma kullanarak:
List<Enum> enum2list(Class<? extends Enum> cls) {
return Arrays.asList(cls.getEnumConstants());
}
16
İhtiyacınız değerin adını biliyorsanız: Bunu yapmazsanız
Class<? extends Enum> klass = ...
Enum<?> x = Enum.valueOf(klass, "NAME");
, bunlardan bir dizi (ilk Tom var) ile alabilirsiniz:
klass.getEnumConstants();
3
Ben EnumSet#allOf()
sözü olmadığını görmek için Im'sürpriz:
public static <E extends Enum<E>> EnumSet<E> allOf(Class<E> elementType)
belirtilen eleman tipinde tüm unsurları içeren bir enum kümesi oluşturur.
enum
aşağıdaki düşünün:
enum MyEnum {
TEST1, TEST2
}
Basitçe şöyle yöntemi çağırır: Elbette
Set<MyEnum> allElementsInMyEnum = EnumSet.allOf(MyEnum.class);
, bu Set
değil, bir List
verir, ancak bunu yeterli olmalıdır çok (çoğu?) kullanım durumları.
Veya, varsa bir enum
bilinmiyor:
Class<? extends Enum> enumClass = MyEnum.class;
Set<? extends Enum> allElementsInMyEnum = EnumSet.allOf(enumClass);
Class#getEnumConstants()
kıyasla Bu yöntemin avantajı, bunun bir enum
dışında başka bir şey geçmesi mümkün değildir böylece yazmış olmasıdır
null
verir:
String.class.getEnumConstants();
bu derleme etmeyecek olsa:
EnumSet.allOf(String.class); // won't compile
İlgili konular
- 1. Java, bitshifts kullanırken, neden 1 << 32! = 1 << 31 << 1?
- 2. Java "<<" ne anlama geliyor?
- 3. Git, <<<<<<< HEAD dosyasına
- 4. Dize Enümleri için Ters Eşleme
- 5. Java sözlüğü <String, Liste <Object>>
- 6. Geleceği Çok Amaçlı Hale Getirme <> in Java <
- 7. Java - anahtarı Hashmap <Sınıfı, ArrayList <Class>>
- 8. nasıl <kbd>ctrl</kbd> Java programı
- 9. Setters ve <code>Java</code> geliyor
- 10. bitiştirmek karakter Java bir <code>String</code> oluşturmak üzere <code>char</code> bitiştirmek için bir yol var mı java
- 11. Scala'dan bir Java statik yöntemine, o sınıfın
- 12. Aktarıcı operatörü hakkında soru <<
- 13. Java 9: Modül java.xml.bind ben <code>Eclipse OxyGen 1a</code> herhangi inşa aracı olmadan <strong>Java 9</strong> projeye Java 8</strong><strong>bir maven projesi göç Eclipse
- 14. Bir özellik karıştığında neden anonim bir sınıf oluşturulur? sınıfın <code>A</code> bir nesne oluşturma
- 15. JavaFX Düzenlenebilir ComboBox: Ben <code>Person</code> sınıfın birkaç nesne ekledik hangi tip <code>Person</code> bir <code>ComboBox<Perosn></code> var
- 16. Neden "cout << '\\\\';” ifadesi başarısız değil?
- 17. <em>Eclipse</em> ("Kepler") ile <em>Java</em> yılında Eclipse
- 18. Kotlin:</p> <pre><code>@OneOf(value = {"m", "f"}) </code></pre> <p>Kotlin kullanımı: Java ek açıklama
- 19. java version komut satırında <code>java --version</code> çalıştı
- 20. Python Katalan Sayılarını Hesaplama
- 21. EJS: <% = versus <% -
- 22. <: <İş nasıl?
- 23. Java İkili Arama <Identifier expected>
- 24. dize dönüştürmeyi <Character> java içinde
- 25. java: HashMap <String, int> çalışmıyor
- 26. Java Object <= ilişkisel operatör denetimi
- 27. Java: Set sayımı <String>
- 28. Ben <em>Java</em> kodundan paketin <code>ult_pkg</code> Bu prosedürü <code>get_data_Q1</code> arayıp koymak out görüntülemek istediğiniz bir java sınıfından
- 29. Sınıfın içine erişmeye çalışırsanız ben <code>Use of unresolved identifier 'selectedCategory'</code> olsun aynı sınıfta</p> <p>uzatılması bildirilen bir özelliğe <code>let selectedCategory</code> erişemez Swift 2.1
- 30. "<%:" ne yapıyor?</p> <pre><code><%: Model.FirstName %> </code></pre> <p>"<%:" Ne vermez: do
onun statik - yansıma. – IAdapter
'Class' bir yansıma nesnesidir (paketi önler). –