Miért szopás a java 5?

Igen, 5.
A genericeket már régen megutáltam, mert nagyon macerás velük dolgozni(azért tud kényelmes is lenni, pl. egy Hashtable készítésénél, de hogy olyan metódusokat, osztályokat hozzak létre, amik azt használják....)
Most jön az enum. Eddig azt hittem, hogy hasznos, de rájöttem, hogy mivel a következő kódra:


switch(Buttons.valueOf(e.getActionCommand()) {
case Buttons.PLAY: //kód
break;
case ...: ...
default: ...
}

errort dob a fordító, teljességgel használhatatlan. A Buttons értelemszerűen egy enumeration típusú változó, amit a következőképp hoztam létre:
enum Buttons { PLAY, DOWNLOAD, stb... }

Ehelyett a jó öreg bevált módszert választottam: public static final int. Az autoboxingot, és a static importot nem sikerült elbaszniuk, gratulálok. A foreach is csak tömbökkel használható, mert gyak. nincs olyan api osztály, ami Iterator interface-t implementáló osztállyal visszatérő metódust tartalmazna.(ez érthető?)
Köszönöm a figyelmet.

Hozzászólások

és elolvastad a hibaüzenetet? (vagy csak szar az egész mer mi értünk hozzá?)

esetleg próbáld így:
switch(Buttons.valueOf("PLAY")) {
case PLAY: //kód
break;
default:
};

A genericekkel nem tudom mi a bajod, nem muszáj olyan osztályt létrehoznod, de nagyon hasznos.

a foreach pedig az egyik feauture amit a legtöbbet használok...

szóval miért is szopás a java 5?

El, és legalább egy órán keresztül túrtam a java.sun.com-ot.
A genericekkel az a bajom, hogy kényelmes meg minden, de pont amire a leghasznosabb lenne, arra nem használható. Foreach csak tömbök esetén használható(jó, meg Iteratort implementáló osztályokkal, de olyanokkal még nem találkoztam, Vectort meg ilyeneket meg nem használok mostanában), de pl. nagyon sok API metódus Enumerationnel tér vissza, aminél ugyanúgy végig kell menni a listán, és rohadt jó lenne a foreach, meg tisztább, meg minden, csak éppen azt nem támogatja.

Update
http://java.sun.com/features/2003/05/bloch_qa.html
ezek alapján az enyémnek is működnie kéne, pedig nem teszi. Mindenesetre a tied működik. Kössz!!
"The enum constant Actions.Buttons.PLAY reference cannot be qualified in a case label"
Ez volt az error. Ebből nem derül ki, hogy mit is kéne csinálni.

na igen Ő ért hozzá viszont a cikk 2003 márciusi és úgy kezdődik, hogy
"With the scheduled beta release of Java 2 Platform, Standard Edition 1.5 (J2SE 1.5) in late 2003 ..."

"... cannot be qualified in a case label" ez pontosan azt jelenti

jah van "egy pár" api ami enumeration-t ad vissza, de azért elég sok osztály implementálja a Collection-t (meg az Iterable-t) (amik mennek a foreach-el)