+= 操作符会进行隐式自动类型转换,此处a+=b隐式的将加操作的结果类型强制转换为持有结果的类型,而a=a+b则不会自动进行类型转换.
如:
byte a = 127;
byte b = 127;
b = a + b; // 报编译错误:cannot convert from int to byte
b += a;
以下代码是否有错,有的话怎么改?
short s1= 1;
s1 = s1 + 1;
有错误.short类型在进行运算时会自动提升为int类型,也就是说 s1+1 的运算结果是int类型,而s1是
short类型,此时编译器会报错.
正确写法:
short s1= 1;
s1 += 1;
本文深入探讨了Java中+=操作符的隐式类型转换特性,并对比了a=a+b操作的显式转换需求。通过具体示例解释了不同类型的变量在运算过程中如何被提升为更宽泛的类型,并给出了正确的代码实现方式。
1345

被折叠的 条评论
为什么被折叠?



