Frage Warum darf ich das Zeichen 𝄞 in einer Java-Quellcodedatei nicht als Variablennamen verwenden?


Welche Regeln gelten für die Zeichen, die in Java-Variablennamen verwendet werden können?

Ich habe diesen Beispielcode:

public class Main {
    public static void main(String[] args)  {
        int k𝄞 = 4;
        System.out.println(s);
    }
}

welche nicht kompilieren wird:

javac Main.java
Main.java:3: error: illegal character: '\udd1e'
        int k𝄞 = 4;
              ^
1 error

Warum wirft der Java-Compiler einen Fehler für "𝄞"? (\ uD834 \ uDD1E)

Gleiches in ideone.com: http://ideone.com/fnmvpG


5
2018-01-28 19:23


Ursprung


Antworten:


Welche Regeln gelten für die Zeichen, die in Java-Variablennamen verwendet werden können?

Die Regeln sind in der JLS für Identifikatoren, in Abschnitt 3.8. Du bist interessiert an Character.isJavaIdentifierPart:

Ein Zeichen kann Teil einer Java-Kennung sein, wenn eine der folgenden Bedingungen erfüllt ist:

  • es ist ein Brief
  • es ist ein Währungssymbol (wie $)
  • es ist ein verbindendes Interpunktionszeichen (wie '_')
  • es ist eine Ziffer
  • es ist ein numerischer Buchstabe (z. B. ein römisches Zahlenzeichen)
  • es ist ein kombinierendes Zeichen
  • es ist eine Nicht-Abstandsmarkierung
  • isIdentifierIgnorable (codePoint) gibt true für das Zeichen zurück

Das setzt natürlich voraus, dass Sie Ihren Code mit der entsprechenden Codierung kompilieren.

Der Charakter, den Sie anscheinend verwenden möchten, ist U + 1D11E, was keines der obigen ist. Es ist ein musikalischer Violinschlüssel, der in der Kategorie "Symbole, andere" ist.


6
2018-01-28 19:32