我正在学习Java。我发现表达式经常必须被转换成某种类型才能正确执行。例如,算术评估中,字节都提升到整数,所以下面的表达式将抛出一个错误:在Java中铸造字符
byte b = 10;
int i;
i = b*b; //ok, assigning an integer evaluation to an integer variable
b = b*b; // throws error, coz assigning integer evaluation to byte variable
现在,我知道,分配给一个字符变量的整数都很好:char a; a = 88;
是好的。但是,如果我这样做:
char c2 = 'b', c3 = 'c';
c2 = c2 + c3; //throws error
c2 = (char)(c2 + c3); //works fine
为什么它抛出一个错误,当不是铸造?毕竟,右侧仍然是一个整数,因此将一个整数赋值给一个字符变量应该工作得很好。
'88'是一个字节,不只是一个整数 –