2015-02-03 9 views
10

Stavo provando il tipo enum in Java. Quando scrivo classe inferiore,Perché Eclipse chiede di dichiarare strictfp all'interno di enum

public class EnumExample { 
    public enum Day { 
    private String mood; 
    MONDAY, TUESDAY, WEDNESDAY; 
    Day(String mood) { 

    } 
    Day() { 

    } 
    } 
} 

compilatore dice: Syntax error on token String, strictfp expected.
so cosa c'è strictfp ma sarebbe venuto qui?

+0

di Quell'eclissi al suo meglio: D 'strictfp' non ha nulla a che fare con le stringhe, ma con aritmetica in virgola mobile: http://stackoverflow.com/questions/517915/when-should-i-use-the -strictfp-keyword-in-java. –

risposta

18

Le costanti enum devono essere first in the enum definition, sopra la variabile private.

Java richiede che le costanti siano definite prima, prima di qualsiasi campo o metodo.

Prova:

public enum Day { 
    MONDAY, TUESDAY, WEDNESDAY; 
    private String mood; 
    Day(String mood) { 

    } 
    Day() { 

    } 
    } 
+0

Fantastico, capito. Ma, in nessun modo questo è legato a 'strictfp', giusto? –

+2

No. La mia ipotesi è che il parser di Eclipse sia incasinato. Il tuo codice ha avuto un errore, ma l'errore non ha avuto nulla a che fare con 'strictfp'. – rgettman

12

Hai forse dimenticato di aggiungere il punto e virgola dopo l'ultima costante enum.

public enum Element { 
    FIRE, 
    WATER, 
    AIR, 
    EARTH, // <-- here is the problem 

    private String message = "Wake up, Neo"; 
} 
+0

Questo è corretto. E questo ti morde quando prendi in giro enum dove non hai nemmeno i valori enum. La soluzione è quindi di aggiungere il punto e virgola in ogni caso, come in: \t enum statico privato EmptyEnum implementa EnumKey { \t \t; \t \t @Override \t \t chiave public String() { \t \t \t ritorno null; \t \t} \t} – user1461450

Problemi correlati