short a = 1; a = a + 1; 有什么错? short a = 1; a += 1; 有什么错?
a + 1 运算时将自动提升运算类型为 int ,再将 int 类型 赋值给short类型的a时,编译器会报需要强制转换类型的错误;
a += 1 等同于a = a + 1 ,但 += 是java语言规定的运算符 ,编译器会对其进行特殊处理 ,表达式右边的结果会自动转换为与表达式左边相同的类型 ,即a + 1会自动转换为short类型 ,所以a += 1 能正确编译;
本文详细解析了Java中short类型变量进行算术运算时的类型转换问题。解释了当使用short类型的变量进行加法运算后直接赋值时为何会出现编译错误,并说明了使用复合赋值操作符(+=)时为何可以正常工作。
973

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



