0〜255の文字値は、"\000"
〜"\377"
の8進数で表すことができます。なぜ " 400"はコンパイル時エラーではありませんか?
"\400"
はコンパイル時エラーがありますか? Eclipseは、しかし、不平を言っていない...ここで何が起こっているのですか?
0〜255の文字値は、"\000"
〜"\377"
の8進数で表すことができます。なぜ " 400"はコンパイル時エラーではありませんか?
"\400"
はコンパイル時エラーがありますか? Eclipseは、しかし、不平を言っていない...ここで何が起こっているのですか?
Java言語仕様がこのhereを説明+ "\ 40" として
を "0" にそれを解釈しています。
OctalEscape:
\ OctalDigit
\ OctalDigit OctalDigit
\ ZeroToThree OctalDigit OctalDigit
OctalDigit: one of
0 1 2 3 4 5 6 7
ZeroToThree: one of
0 1 2 3
それは '0' に続く
\ OctalDigit OctalDigit
の建設...に該当します。それは
\ ZeroToThree OctalDigit OctalDigit
下落ちない...ので、それが曖昧か、範囲外ではありません。詳細は、Java言語仕様のsection 3.10.6を参照してください。あなたは、まさにこの理由のため文字リテラルとして使用することはできません
注:個人的に
char x = '\377'; // Fine
char y = '\400'; // Error: unclosed character literal
"unclosed character literal"エラーメッセージが公式javacからのものである場合、それは奇妙なエラーメッセージのリストにうまく収まります。 –
@Thorbjørn:私はそれが奇妙だとは思わない。このような状況に限定されるものではありません。「abc」もそれを行います。 –
は、私はそれが失敗した場合、それが良いだろうと思います。それはひどく秘密の区別です。 – Jay