2009-06-09 8 views
11

È possibile ottenere i valori di enumerazione da una classe? Lasciami elaborare un po 'questo. Se ho un enum per esempio FooBar, allora posso ottenere i valori di FooBar chiamando FooBar.values ​​() che restituirà un array con le enumerazioni (FooBar []). Il mio problema è che ho un metodo che accetta come parametro di input una classe (Classe c) e all'interno del metodo controllo se sia o meno un enum (c.isEnum()). Se è un enume, avrei bisogno di ottenere in qualche modo i valori enum, il problema è che non so proprio come farlo, non sono nemmeno del tutto sicuro che sia possibile. Quindi, è possibile e se lo è, come posso realizzare questo? (Si noti che la soluzione deve essere generica, in altre parole se else-else).Ottieni valori di enumerazione dalla classe

risposta

22

Um ... hai guardato il documento API?

Class.getEnumConstants()

+1

Sì, un paio di volte e in qualche modo mi mancava in qualche modo quel metodo o_O –

+1

Solo per aggiungere un esempio su come usarlo: http://java.sun.com/docs/books/tutorial/reflect/special/ enumMembers.html – Kosi2801

0

Modificato:. È possibile utilizzare c.getClass() getEnumConstants() per ottenere i valori delle costanti

(si legge 'nomi' invece di 'valori' e ha aggiunto un po 'di cose inutili)

+0

Errore. getEnumConstants() restituisce i valori, non i nomi - e sono anche digitati tramite generici se l'oggetto classe è, anche se probabilmente non si applica in questo caso. –

+0

Ah, pensavo di averlo appena testato, ma c'è un bug nel mio test rapido e sporco; mi dispiace per quello. – Confusion

Problemi correlati