Java: Switch-Case su String

Java: Switch-Case su String

Per chi è abituato ad usare altri linguaggi, viene naturale aspettarsi di poter scrivere, anche in Java, switch-case su stringhe. Non usavo seriamente java dai tempi di java 2 (1.4.2) e sono rimasto stupito che nemmeno nelle ultime versioni questa possibilità sia stata introdotta.

In realtà, tenendo presente che nel costrutto switch-case possono essere utilizzati gli Enum, è possibile ottenere lo stesso risultato con poche righe di codice.
Infatti, a partire da Java 1.5, gli Enum sono stati dotati del metodo valueOf che imposta il valore dell’istanza a partire dal nome associato a quel valore.

Ecco un esempio che è più significativo delle parole:

public enum Stato
{
    START, STOP, PAUSE;
}
// Impostiamo in s il valore da testare...
String s = ...

// Facciamo il nostro switch sfruttando "valueOf"
switch (Stato.valueOf(s))
{
    case START:
        //...
        break;
    case STOP:
        //...
    break;
    //...
}

L’unico inconveniente è che il metodo valueOf può dare due eccezioni (IllegalArgumentException e NullPointerException) che è opportuno gestire.

Buona programmazione!

Condividi

Leave a Reply

 


Get Adobe Flash player