Java enum Elemente mit Leerzeichen?
Im arbeiten auf java habe ich ein enum wie folgt:
public enum myEnum
{
india,
russian,
england,
north America
}
Obige Beispiel gibt Fehler, die während der Verwendung von Leerzeichen in den Namen des Elements (also Nordamerika).
Irgendwelche Vorschläge, wie man oben genannte Problem beheben?
Kommentar zu dem Problem
Der Zugang zu diesem Mitglied wäre nicht möglich; denken Sie etwa
myEnum x = myEnum.Nordamerika
. Diese werden nicht compiable denn wenn man erlauben würde, solche Namen, wo man einstellen kann das Ende eines Bezeichners? Vielleicht das nächste code-Zeile, oder die Erklärung aufgenommen werden sollten? Verwenden Sie KEINE kleinen Buchstaben für enums und auch für die Klasse name!
InformationsquelleAutor der Frage BSalunke | 2011-12-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht setzen Sie ein Leerzeichen in der Mitte von einem Bezeichner.
Tun, also enden, dass die id und der parser setzt Voraus, was als Nächstes kommt ist ein gültiges token in dieser Aussage ist der Kontext. Es gibt nur wenige (wenn überhaupt) Plätze, die legal wäre.
Herkömmlichen Java-Namen Wert wäre:
Einer
enum
können zugehörige Eigenschaften, wie den Menschen lesbare Namen, wie z.B.,Ich bin ambivalent über die Verwendung
toString
zu bieten presentation-layer-Darstellungen.Bevorzuge ich Methoden, die die Kommunikation Ihren Zweck ausdrücklich mehr–es ist ausdrucksstark und klar.
toString
ist ziemlich generisch und erlaubt nur eine einzige Darstellung. Mehrere output-Formate kann erforderlich sein, je nach Kontext, Parameter, etc. dietoString
nicht zulassen.Vorteile
toString
gehören die Verwendung der Standard-string-Operationen auf das Objekt, und in diesem Fall, mitvalueOf
direkt zu übersetzen aus der menschlich-lesbare version des enum-Wert.InformationsquelleAutor der Antwort Dave Newton
Ich bin gong, gehen Sie vor und erraten, warum Sie wollen, dass ein Leerzeichen in den Namen; denn Sie verweisen möchten und Sie als string.
Also:
Können Sie prüfen, übergeordnete Zeichenfolge.
Einen Vorteil überschreiben von toString() ist, dass dieser string kann auch verwendet werden, in MyEnum .valueOf(myString). So überschreiben von toString schafft im Grunde eine HashMap der enum-Werte.
InformationsquelleAutor der Antwort Joe
Das problem hat nichts speziell zu tun mit enums: in Java-Namen können keine Leerzeichen enthalten. Versuchen Sie, die Beseitigung der Raum (mit Großschreibung zu sagen, die bits auseinander) oder verwenden Sie Unterstriche statt.
InformationsquelleAutor der Antwort Scott Hunter
Schreiben Sie zusammen, wie
northAmerica
oder verwenden Sie einen Unterstrichnorth_America
.InformationsquelleAutor der Antwort Tudor
Den Java naming rule nicht erlaubt, Leerzeichen wie möglich Zeichen in einem Namen von Variablen, Klassen, enums und enum-Mitglieder (und jeder andere Bezeichner). Daher ist dieses "problem" nicht gelöst werden kann. Nur `north_america " als Mitglied name!
InformationsquelleAutor der Antwort Matten
Zugriff auf Werte
InformationsquelleAutor der Antwort Marc Nuri
nur Ihre eigenen valueOf wie die Funktion in der enum-Klasse. Ersetzen Sie Leerzeichen durch Unterstriche. benennen Sie Ihre enum-Konstanten, wie dieses "north_america("North America")". Wenn die Methode fehlschlägt, finden Sie Ihre enum-es gibt nur die parameter.
InformationsquelleAutor der Antwort j2emanue
Ich führte auch eine eigene valueOf-Methode. Aber ich komme mit den Enum-Typ und ich muss Sie nicht konvertieren "checkString"
checkString ist "Petty Cash" zum Beispiel.
JournalType journalType = JournalType.valueOfOrDefault(checkString);
InformationsquelleAutor der Antwort matzeihnsein