Reservierte Wörter als Variablen- oder Methodennamen
Ist es eine schwierige Art und Weise zu verwenden, Java reservierte Wörter als Variablen-oder Methodennamen?
InformationsquelleAutor der Frage | 2009-01-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, es gibt keinen Weg. Das ist, warum Sie mit der Bezeichnung "reserviert".
InformationsquelleAutor der Antwort Salty
Dies ist eine berechtigte Frage. So ein Ding ist möglich in anderen Sprachen. In C#, Präfix des Bezeichners mit
@
(als gefragt, vor); in Delphi, Präfix mit&
. Aber Java bietet keine solche Funktion (teilweise, weil Sie nicht wirklich brauchen, um die Interaktion mit Bezeichner definiert die von anderen Sprachen den Weg die .Net-Welt tut).InformationsquelleAutor der Antwort Rob Kennedy
Meisten oft diese Frage kommt für "Klasse", in diesem Fall ist es üblich zu schreiben "clazz".
InformationsquelleAutor der Antwort starblue
Nein, Sie können das nicht tun. Für weitere Informationen gehen Sie bitte zu JLS Abschnitte 3.8, 3.9
InformationsquelleAutor der Antwort bruno conde
Streng genommen kann man nicht, es sei denn, Sie bekommen Ihre Hände auf einen buggy compiler-Implementierung, die nicht haften, um die Sprache Java spec.
Aber wo ein Wille ist, ist auch ein Weg. Kopieren Sie den folgenden code in Ihrer IDE, wechseln Sie die Quelle der Datei-Kodierung UTF-16-und hier gehen wir:
Dieser code ist eine wohlgeformte und gültige Java-Klasse. Jedoch, wie Sie schon erraten haben, gibt es einen kleinen trick: die 'е' - Zeichen in "neue" Bezeichner gehören nicht zum ASCII-Zeichensatz, es ist tatsächlich ein cyrrilic 'е' (prounanced 'IHR').
Aktuelle Java-language-Spezifikation explizit erlaubt, und dieses ist ein wichtiger Punkt zu machen, ist die Verwendung von Unicode für die Benennung von Bezeichnern. Das bedeutet, dass man eine Fähigkeit hat, frei zu nennen, Ihre oder seine Kurse in Französisch, Chinise oder Russisch, wenn Sie wollen. Es ist auch möglich, zu mischen und entsprechen Sie die Alphabete innerhalb von code. Und historisch gesehen, einige Briefe in Latein und anderen Alphabeten sind lookalikes.
Als Ergebnis: Nein, können Sie nicht verwenden, die reservierte Wörter als Bezeichner, sondern Sie können Bezeichner verwenden, die genauso Aussehen wie reservierte Wörter.
Ob jemand sein sollte, es zu tun ist eine ganz andere Sache.
InformationsquelleAutor der Antwort Vlad Gudim
Ja, es ist.
Sie haben die Verwendung von reservierten Wörtern aus der Zukunft.
Wie was geschah mit verschiedenen Methoden namens assert() in pre-1.4-code.
Hoffe, es hilft!
InformationsquelleAutor der Antwort Yoni Roit
Nicht wahr? Warum wollen Sie das tun? Sie können schreiben Sie Sie in l33t,, der Narr der compiler.
InformationsquelleAutor der Antwort Miserable Variable
Ich weiß, es ist eine alte Frage noch, könnte jemand helfen.
Ist es möglich mit Hilfe von GSON ist Feld Benennung Unterstützung
zB.
InformationsquelleAutor der Antwort SK16
Es ist schlimm genug, dass einige groß-und Kleinschreibung Sprachen zulassen, dass Dinge wie die folgenden:
Aber warum würde Sie jemals in der Lage sein möchten, schreiben Sie eine Zeile code wie diese:
Werfen Sie einen Blick auf die syntax-Hervorhebung. Auch kommt er Durcheinander!
InformationsquelleAutor der Antwort lc.
Gibt es keine Möglichkeit, reservierte Wörter, die mit der javac compiler.
Technisch, können Sie Bearbeiten Sie den Namen innerhalb der class-Datei, sobald es kompiliert zu werden, was Sie wollen: in diesem Stadium kann der VM sich nicht kümmern, denn es ist nicht der Umgang mit source-code nicht mehr. Ich glaube, dass einige obfuscators, diese Technik zu verwenden.
InformationsquelleAutor der Antwort Neil Coffey
PL/1 (1960 IBM mainframe Programmiersprache immer noch rund, heute), sondern bekanntlich erforderlich, dass, während einige Worte wirken wie keywords in bestimmten Kontexten, alle Wörter als Bezeichner verwendet werden können. Das ist nicht einmal schwer zu tun in einem parser wenn Sie sich konsequent daran. PL/1 wurde als eine ziemlich große Sprache, und die Sprache Ausschuss besorgt darüber, dass viele Programmierer würden nicht alles erfahren, und dann würde Sie bekommen überrascht, wenn Sie versucht, verwenden Sie das Schlüsselwort aus einem Teil, Sie wusste nicht, wie eine Kennung.
So könnten Sie schreiben Dinge wie:
Wie andere schon hier erwähnt, die Fähigkeit zu tun, das ist nicht eine Empfehlung.
Die Java-Designer haben beschlossen, die Anzahl der keywords in der Sprache war bescheiden und zurückhaltend eingestellt. Sie selbst vorbehalten 'GOTO', das ist eigentlich nicht erlaubt in jedem echten Java-Programm.
InformationsquelleAutor der Antwort Ira Baxter
Nicht sicher, was Sie versuchen zu tun, aber $ ist ein gültiges Zeichen in Bezeichnern, so dass Sie könnte tun, zu sagen:
int $return = 5;
Sieht es ein wenig seltsam, aber es funktioniert.
InformationsquelleAutor der Antwort Kris Pruden
In Scala können Sie backticks. Zum Beispiel: myVarialbe.`class`
InformationsquelleAutor der Antwort Jack