Domanda

Sono appena tornato allo sviluppo MIDP dopo circa 4 anni di .NET e Java 2 5 e 6. Durante questo periodo ho avuto modo di come utilizzare le enumerazioni un bel po '.

Enum è una caratteristica del linguaggio che permette allo sviluppatore di avere più fiducia in alcune parti del suo codice, specialmente per essere in grado di evitare o rilevare gli errori prima (durante la compilazione). Alcuni altri vantaggi possono essere trovate qui: http: // java.sun.com/j2se/1.5.0/docs/guide/language/enums.html

L'ho trovato strano che non riuscivo a trovare in MIDP 2.0. Ho questo messaggio di errore:

  

"Tipo 'enum' non deve essere utilizzato come   identificatore, dal momento che è una riservata   parola chiave dal livello della sorgente 1.5"

Ho avuto qualche esperienza in Java 1.4 un po 'indietro, ma non mi ricordo di questo. Ci sono alcune caratteristiche sicuri di versioni più recenti dei vostri linguaggi di alto livello che si arriva a dare per scontato ...

In ogni caso, ecco una buona raccomandazione per cosa fare senza di loro (se si sta sviluppando MIDP o trattare con il codice prima di Java 5): http: // www.javacamp.org/designPattern/enum. html

Riassumendo in su (per maggiori dettagli e una buona spiegazione, segui il link precedente Molte grazie per l'autore originale.):

//The typesafe enum pattern
public class Suit {
    private final String name;

    public static final Suit CLUBS =new Suit("clubs");
    public static final Suit DIAMONDS =new Suit("diamonds");
    public static final Suit HEARTS =new Suit("hearts");
    public static final Suit SPADES =new Suit("spades");    

    private Suit(String name){
        this.name =name;
    }
    public String toString(){
        return name;
    }

}

Avete altri approcci diversi a questo problema?

È stato utile?

Soluzione

Il problema con MIDP è che si è bloccato a livello di linguaggio Java 1.2 (alcuni dicono 1.3 o 1.4, ma non questo è il punto) e Enums sono stati introdotti nella 1.5. Il tuo modello è un passo nella giusta direzione, ma manca di alcune funzionalità di enumerazioni "reali", come l'assegnazione di un numero ordinale per ogni costante.

Si potrebbe incorrere in problemi simili con i generici, annotazioni, ecc, che sono state introdotte anche nella 1.5. Ci sono strumenti per convertire Java 1.5 di nuovo a 1.2, alcuni sono elencati qui . Come quella, si dovrebbe essere in grado di codificare in 1.5 ed eseguire sul MIDP. Si noti, tuttavia, che l'uso di questi strumenti complicherà il processo di compilazione considerevolmente, mentre la soluzione che lei ha citato non è così.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top