java 不兼容的类型 从int转换到short可能会有损失
项目场景
- 学习Java赋值运算符
问题描述
- ```java
public class HelloWorld {
}public static void main(String[] args) { short c1 = 1919; c1 = c1 + 1;//此行报错 System.out.print("中共一大于" + (c1 + 1) + "年召开"); }
3. ## 原因分析
1. 将大范围的数据赋值(如`int`)给小范围的数据(如`short`),可能会有精度损失,编译器不允许这样做。
4. ## 解决方案
1. 将小范围数据类型提升(如将`short`提升为`int`)
2. 使用自增自减运算符,在自增自减运算中,隐含了强制类型转换
3. 直接强制类型抓换,将报错行代码修改为如下:
4. ```java
c1 = (short) (c1 + 1);
- ```java
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.