Perhap questa è una semplice questione di fondoEsiste un modo simile a C per ottenere il numero dell'oggetto da enum in java?
Avere un enum
public enum TK{
ID,GROUP,DATA,FAIL;
}
Posso avere il numero d'ordine, ad esempio ID = 0, GRUPPO = 2, DATA = 3, FAIL = 4?
Questo è un modo per farlo, ma uno strano e lungo! = S
public enum TK{
ID(0),GROUP(1),DATA(2),FAIL(3);
int num;
TK(int n)
{
this.num=n;
}
public int get()
{
return num;
}
};
per ottenere numeri in modo che scrivo TK.ID.get(), TK.GROUP.get(), ecc ... non mi piace che
c'è un modo migliore ?
(C enumerazioni, C macros..I perdere tutti e due)
grazie
Tante risposte, ma nessuno ti dà fastidio di spiegare che nella maggior parte dei casi non dovresti usare l'ordinale. Non vuoi che il tuo programma dipenda dall'ordinamento dei tuoi valori enum. – Jorn
@Jorn: i documenti API dicono "... La maggior parte dei programmatori non avrà alcun utilizzo per questo metodo ed è progettata per essere utilizzata da sofisticate strutture di dati basate su enum, come EnumSet ed EnumMap." – Yaneeve
A volte non è così male, nel mio caso ho bisogno di enumare i titoli di una tabella CSV, quindi se questo dovesse cambiare è perché la tabella ha fatto, e questo non è molto probabile, al più nuove colonne saranno aggiunte alla fine, e ordinale sarà ancora utile penso che –