为什么我得到不兼容的类型错误?
问题描述:
我正在学习java,并在其中创建一些简单的测试程序和笔记,我收到一个错误,说“短语shortVal = val5 + val6不兼容的类型:从int到short可能的有损转换”;我看了,这个错误意味着我试图把一个int值放入一个简短的变量,但我存储在短的值只有27,所以我有点困惑什么是错的。为什么我得到不兼容的类型错误?
public class test{
public static void main(String[] args){
double val1=4;
float val2=9;
long val3=30;
int val4= 8;
short val5= 15;
short val6=12;
byte val7=20;
short shortVal= val5 + val6; //why the error here?
}
}
答
的short + short
结果是,有些矛盾的是,int
。因此,您正试图将int
分配给short
变量(shortVal
)。
答
short
+ short
将导致int
。你需要一个int
变量来存储结果:
int shortVal = val5 + val6;
更精确副本:http://*.com/questions/5919423/why-am-i-getting-a-warning-about-possible-loss- java中的精度 –
http://*.com/questions/477750/primitive-type-short-casting-in-java – shmosel
请[**彻底搜索**](/ search?q =%5Bjava% 5D +不兼容+类型%3A +可能+有损+转换+从+ int +到+短)在发布之前。更多关于搜索[这里](/帮助/搜索)。 –