Classi Enum

di il
2 risposte

Classi Enum

Ho creato una classe enum chiamata segni zodiacali con all'interno solo costanti cioè:

public enum SegnoZodiacale 
	{
		ariete, toro, gemelli, cancro, leone, vergine, bilancia, scorpione, sagittario, capricorno, acquario, pesci
	}
(correggetemi se sbaglio qualcosa perchè non le ho mai usate)

ora vorrei chiedere all'utente un valore numerico e assegnarlo in automatico al segno corrispondente, facendomi stampare a video la parola corrispondente al numero, ad esempio se inserisco 1 mi stampa a video ariete....

solo che ho letto che c'è un metodo toString(), l'ho provato e funziona, ma il mio problema è che non so come leggere un valore e in base al valore letto verificare a che valore corrisponde della mia classe enum e stamparlo a video.

Come posso fare?

Grazie

2 Risposte

  • Re: Classi Enum

    Banale:

    in Java i tipi enumerativi derivano dalla classe java.lang.Enum.

    Ogni tipo enumerativo (diciamo 'E') mette a disposizione una serie di metodi, tra i quali:

    E.values() -> E[] ritorna il vettore di tutti i valori enumerativi
    E.valueOf("stringa") -> E ritorna il valore enumerativo corrispondente alla stringa (e genera eccezione se viene passata una stringa che non ha corrispondenza).

    Da cui ... praticamente hai tutte le informazioni per scrivere il pezzetto di codice che ti serve.

    Nota: esistono delle convenzioni nella scrittura di codice Java che conviene sempre seguire.

    http://www.oracle.com/technetwork/java/codeconv-138413.html

    Una di queste dice che le costanti vanno scritte come COSTANTE (tutto maiuscolo).
    I tipi enumerativi sono a tutti gli effetti delle costanti.

    Ovviamente, le regole sono fatte per non essere osservate.
    Ma e' una bruuuuuutta cosa .
  • Re: Classi Enum

    Grazie mille! funziona tutto!
Devi accedere o registrarti per scrivere nel forum
2 risposte