Java: short a=1; a=a+1; 编译报错
最近练习是遇到的一个小问题,作分享。
short a=1; a=a+1; 编译报错
java里a=a+1会自动转型成int,如果不进行显示转换,而是将int强转short就会报错.
正确写法为 short a=1; a=(short)(a+1); (显示转换)
反过来,short→int可以不用写,会自动转换
规则:隐式类型转换可以从小到大自动转,即byte→short→int→long;如果反过来会丢失精度,必须进行显示类型转换