扩展的赋值运算符隐含着强转(面试题)

/*
扩展的赋值运算符隐含强制转换
*/
class OperatorDemo {
public static void main(String[] args){
//此代码编译会报错:test.java:7: 错误: 不兼容的类型: 从int转换到short可能会有损失
//原因:a+1的类想是int类型,将int类型的数据赋值给short类型的数据会有精度的丢失,故而报错
short a = 1;
a = a + 1;

//此代码正常编译运行
//原因:b += 1 等价于 b = (byte) (b + 1),扩展的赋值运算符隐含了强制转换
short b = 1;
b += 1;
}
}

猜你喜欢

转载自blog.csdn.net/dingguanyi/article/details/80523585