为什么我们不能将char类型变量的默认值设置为''?同样,我们可以在Java中将字符串变量的默认值设置为“”。

假设

class abc
{
   private String a="";
   private char b='';//here it will give error
}

最佳答案

因为''不是Java Language Specification中定义的字符文字。

CharacterLiteral:
    ' SingleCharacter '
    ' EscapeSequence '

SingleCharacter:
    InputCharacter but not ' or \

InputCharacter:
    UnicodeInputCharacter but not CR or LF

UnicodeInputCharacter:
    UnicodeEscape
    RawInputCharacter

UnicodeEscape:
    \ UnicodeMarker HexDigit HexDigit HexDigit HexDigit

UnicodeMarker:
    u
    UnicodeMarker u

RawInputCharacter:
    any Unicode character

HexDigit: one of
    0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F


另一方面,a String literal is defined as

StringLiteral:
    " StringCharacters opt "


注意opt(可选)。

10-07 16:57