为什么我们不能将char类型变量的默认值设置为''

时间:2014-03-27 19:26:36

标签: java char

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

假设

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

4 个答案:

答案 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。这将是空字符原语的一个很好的替代品。这些不是空的原始字符,它必须是某种东西。