为什么我们不能将char类型变量的默认值设置为' &#39 ;?同样,我们可以将字符串变量的默认值设置为" "在Java。
假设
class abc
{
private String a="";
private char b='';//here it will give error
}
答案 0 :(得分:3)
因为''
不是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
,可选。
答案 1 :(得分:0)
字符串基本上是一个字符数组,数组可以为空而没有任何问题。
由于角色不是数组,因此它不能为空,必须将其设置为有效的字符'值。
答案 2 :(得分:0)
如果要将char设置为空,请使用:
Character c='\u0000'
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
答案 3 :(得分:0)
尝试\ 0。这将是空字符原语的一个很好的替代品。这些不是空的原始字符,它必须是某种东西。