对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。
而对于+=则是java编辑器对其有特殊处理,先将是s1+1相加得int类型,然后编译器将其强制类型转换为short类型的,所以不会出错!
对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。
而对于+=则是java编辑器对其有特殊处理,先将是s1+1相加得int类型,然后编译器将其强制类型转换为short类型的,所以不会出错!