Perché ovviamente Key.JUMP ecc... sono oggetti (quindi no OR!!).Originariamente inviato da Spocchioso
adesso, mi chiedevo come mai non potessi fare cose come
Key salto = Key.JUMP | Key.LEFT;
L'unica cosa di particolare che hai fatto è quella di mettere in ogni costante della enum (che ripeto ancora una volta è un oggetto) una proprietà di tipo int. Che comunque non la stai usando perché non hai messo un metodo getter per leggerla (quindi che serve??).
Se vuoi puoi usare un EnumSet che è un "set" specializzato e ottimizzato per gestire costanti di una enum.Originariamente inviato da Spocchioso
e se non è possibile, che metodi alternativi posso usarE?
Esempio:
E in ogni caso, quella proprietà int non ti serve e non ti sarebbe in alcun modo utile (altrimenti che usi una enum a fare???)codice:EnumSet<Key> set = EnumSet.noneOf (Key.class); set.add (Key.UP); set.add (Key.DOWN); System.out.println (set.contains (Key.DOWN));
Altrimenti avrebbe più senso ritornare alle classiche costanti intere, che quindi puoi mettere tranquillamente in OR.

Rispondi quotando