本文介绍了x = x + 3和x + = 3有什么区别?为什么一个需要类型转换而另一个不需要类型转换?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问题:
char x = 'a';
x += 3; // ok
x = x + 3; // compile time error
推荐答案
因为 x + = 3
等效于 x =(char)(x + 3)
,虽然 x + 3
默认为 int
操作,但将一个int分配给char必须强制转换.
Because x += 3
is equivalent to x = (char)(x+3)
, while x + 3
is default to int
operation, assign an int to char must cast.
来自 JLS规范:15.26.2 代码>
,
这篇关于x = x + 3和x + = 3有什么区别?为什么一个需要类型转换而另一个不需要类型转换?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!