【发布时间】:2012-12-06 18:00:49
【问题描述】:
我正在学习 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是一个字节,而不仅仅是一个整数
标签: java