Ich habe diese Aussagen:Ist u65549 ein gültiger Java-Bezeichner?
int \u65549 = 9;
System.out.println(\u65549);
Das perfekt kompiliert. Und Ausgänge
9
Aber:
System.out.println(Character.isJavaIdentifierStart(\u65549));
Ausgänge
false
habe ich einige der Forschung zu diesem Thema. Ich lese die Dokumentation, und es heißt:
Diese Methode kann nicht mit zusätzlichen Zeichen umgehen. Verwenden Sie die Methode
isJavaIdentifierStart(int)
, um alle Unicode-Zeichen einschließlich Zusatzzeichen zu unterstützen.
Dann habe ich dies:
int x = \u65549;
System.out.println(Character.isJavaIdentifierStart(x));
Aber auch diese Drucke:
false
Also, bedeutet dies, dass Java über \u65549
verwechselt wird eine Kennung zu sein?
@ bcsb1001 Sie haben die Deklaration "int \ u65549" in beide Snippets gelöscht, weshalb Sie das Problem nicht reproduzieren konnten. – rhino
Die angenommene Antwort hat vergessen, Ihr drittes Beispiel zu erwähnen. Eigentlich 'int \ u65549 = 9 (du hast vergessen zu erwähnen, dass das oben erscheinen muss); int X = \ u65549; Sop (Character.isJavaIdentifierStart (x)); 'ist gleich wie' int A = 9; Int X = A; Sop (Character.isJavaIdentifierStart (X)); ', das bedeutet dasselbe Ergebnis wie das zweite Beispiel' int A = 9; Sop (Character.isJavaIdentifierStart (A)); ' –