通过int值增加char变量

时间:2016-02-13 01:14:13

标签: java

我编写了两个版本的Java代码,将char变量递增1:

VERSION1:

char c = 'a';
c = c + 1;

版本2:

char c = 'a';
c += 1;

令我惊讶的是,第二个版本编译并成功运行,但第一个版本显示错误,该错误表示不兼容的类型:从int到char的有损转换。他们为什么不同?

1 个答案:

答案 0 :(得分:2)

第二个版本涉及演员表,相当于:

c = (char) (c + 1);

参见JLS section 15.26.2(复合运营商):

  

E1 op= E2形式的复合赋值表达式等效于E1 = (T) ((E1) op (E2)),其中T是E1的类型,但E1只被评估一次。