Io non ho capito una cosa, se dichiaro un tipo enumerativo come questo:
enum Seme { CUORI, QUADRI, FIORI, PICCHE}
poi come faccio a sapere che ad esempio il secondo valore è QUADRI, oppure ricavare la posizione partendo dalla parola QUADRI?![]()
Io non ho capito una cosa, se dichiaro un tipo enumerativo come questo:
enum Seme { CUORI, QUADRI, FIORI, PICCHE}
poi come faccio a sapere che ad esempio il secondo valore è QUADRI, oppure ricavare la posizione partendo dalla parola QUADRI?![]()
a me servirebbe fare una cosa di questo tipo:
int x = (int) Seme.PICCHE;
: )![]()
Ogni costante della enum è un oggetto .... un po' particolare. Ognuno ha un metodo ordinal() che restituisce la posizione nella dichiarazione della enum (per chiarire nel tuo caso: Seme.CUORI.ordinal() dà 0, Seme.QUADRI.ordinal() dà 1, ecc...).Originariamente inviato da Lucked
poi come faccio a sapere che ad esempio il secondo valore è QUADRI, oppure ricavare la posizione partendo dalla parola QUADRI?![]()
Questo ovviamente no! PICCHE è un oggetto, non puoi certo farne un cast a int!Originariamente inviato da Lucked
a me servirebbe fare una cosa di questo tipo:
int x = (int) Seme.PICCHE;
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Ad ogni elemento della Enum puoi associare un valore.
Quindi:Codice PHP:public enum Seme {
CUORI(1),
QUADRI(2),
PICCHE(3),
FIORI(4);
private int value;
private Seme(int val) {
this.value = val;
}
public int getValue(){
return value;
}
}
Codice PHP:int x = Seme.PICCHE.getValue();
Al mio segnale... scatenate l'inferno!
ok grazie a tutti. Mi servirebbe un altra cosa.
Fare una cosa tipo : Seme.valueof(2) e ricevere ad esempio QUADRI. Ho trovato nella documentazione un valueof, un metodo statico che non sono ancora riuscito ad utilizzare. Consigli?
boh![]()
Si può fare ma non così. Ogni tipo enum ha un metodo statico values() che restituisce un array di tutte le costanti. Quindi:Originariamente inviato da Lucked
Fare una cosa tipo : Seme.valueof(2) e ricevere ad esempio QUADRI.
Seme s = Seme.values()[1];
in s hai il riferimento alla costante QUADRI.
valueOf() riceve un String.Originariamente inviato da Lucked
Ho trovato nella documentazione un valueof
Seme s = Seme.valueOf("QUADRI");
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Ciao Andbin, grazie, in effetti mi è sfuggito questo modo: Seme.values()[1] mi serviva proprio questo. Poi il valueOf dell'enum, è un po' diverso, utilizza due valori in ingresso e non ho capito cosa faccia : ) cmq bene, sono contento che si possa fare quello che volevo. grazie.![]()
Il valueOf() di java.lang.Enum è semplicemente la gestione generica e "globale" per ottenere una costante di una enum a partire da un String. Il valueOf() di una enum specifica semplicemente invoca valueOf() di Enum passando anche il proprio tipo.Originariamente inviato da Lucked
Poi il valueOf dell'enum, è un po' diverso, utilizza due valori in ingresso e non ho capito cosa faccia
Seme q = Enum.valueOf(Seme.class, "QUADRI");
e
Seme q = Seme.valueOf("QUADRI");
danno sostanzialmente lo stesso risultato. Ma è meglio la seconda, non solo perché più corta (!) ma anche perché dà meglio l'idea del concetto.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Ahhh ok, bravo, mi ero perso nelle < >![]()