私は、これらのステートメントを持っている: u65549は有効なJava識別子ですか?
int \u65549 = 9;
System.out.println(\u65549);
これは完全にコンパイルされます。そして、出力
9
しかし:
System.out.println(Character.isJavaIdentifierStart(\u65549));
出力
false
は、私はこのトピックに関するいくつかの研究をしました。私は文書を読んで、それは言う:
このメソッドは、補助文字を処理することはできません。補助文字を含むすべてのUnicode文字をサポートするには、
isJavaIdentifierStart(int)
メソッドを使用します。
は、その後、私はこれでした:
int x = \u65549;
System.out.println(Character.isJavaIdentifierStart(x));
をしかし、たとえこれが出力します。
false
をだから、これはJavaが識別子である\u65549
上で混同されていることを、意味するのでしょうか?
@ bcsb1001両方のスニペットで 'int \ u65549'宣言を削除したので、問題を再現できませんでした。 – rhino
受け入れられた答えは、あなたの3番目の例を挙げるのを忘れました。実際には 'int \ u65549 = 9(これを忘れた場合は、これを一番上に表示する必要があります)。 int X = \ u65549; Sop(Character.isJavaIdentifierStart(x)); 'int A = 9;と同じです。 int X = A; Sop(Character.isJavaIdentifierStart(X)); 'これは第2の例と同じ結果を意味します' int A = 9; Sop(Character.isJavaIdentifierStart(A)); ' –