为什么我们不能将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 asStringLiteral:
" StringCharacters opt "
注意
opt
(可选)。