Welche Art von Token ist in Java 10 genau "var"?

11

In der letzten Ausgabe des Newsletters von Heinz Kabutz, # 255 Java 10: Abgeleitete lokale Variablen , wird es gezeigt Das var ist in Java 10 kein reserviertes Wort, da Sie auch var als Bezeichner verwenden können:

%Vor%

Sie können jedoch d. h. assert nicht als Bezeichner verwenden, wie in var assert = 2 , da assert ein reserviertes Wort ist.

Wie es im verknüpften Newsletter heißt, ist die Tatsache, dass var kein reserviertes Wort ist, eine gute Nachricht, da Code aus früheren Java-Versionen, die var als Bezeichner verwenden, ohne Probleme in Java 10 kompiliert werden kann .

Also, was ist dann var ? Es ist weder ein expliziter Typ noch ein reserviertes Wort der Sprache, daher darf es ein Bezeichner sein, allerdings hat es eine besondere Bedeutung, wenn es in Java 10 eine lokale Variable deklariert. Was genau nennen wir es im Zusammenhang mit a lokale Variablendeklaration?

Zusätzlich zu der Unterstützung der Abwärtskompatibilität (indem älterer Code zugelassen wird, der var als Bezeichner zum Kompilieren enthält), gibt es weitere Vorteile, wenn var nicht ein reserviertes Wort ist?

    
Federico Peralta Schaffner 03.03.2018, 20:54
quelle

2 Antworten

17

Laut JEP-286: Inferenz lokaler Variablen , var ist

  

kein Schlüsselwort; Stattdessen ist es ein reservierter Typname .

(Frühere Versionen des JEP ließen Raum für die Implementierung entweder als reservierter Typname oder als kontextsensitives Schlüsselwort; der vorherige Pfad wurde letztendlich gewählt.)

Da es kein "reserviertes Schlüsselwort" ist, ist es möglich, es weiterhin in Variablennamen (und Paketnamen) zu verwenden, aber nicht in Klassen- oder Schnittstellennamen.

Ich denke, der größte Grund dafür, dass var kein reserviertes Keyword ist, ist die Rückwärtskompatibilität mit altem Quellcode.

    
Mick Mnemonic 03.03.2018, 21:09
quelle
1
  

var ist ein reservierter Typname. var ist kein Schlüsselwort. Es ist ein reservierter Typ   Name.

Wir können eine Variable namens "var" erstellen.

Sie können hier für weitere Details lesen.

%Vor%     
Roushan45 27.03.2018 11:39
quelle

Tags und Links