可能重复:
Eclipse 错误?什么时候短不是短?
在 Java 中,我可以像这样分配一个short
或一个byte
内部块:
short s = 20000;
byte b = 120;
因为 20000 是一个short
值,而 120 是一个byte
值,所以如果我尝试尝试:
short s = 67000;
byte b = 128;
我会收到一个错误,指出它无法从int
哪里byte
编译
byte b = (byte)12232;
甚至不会触发价值可能丢失的警告。在函数调用中,无论如何我都不得不强制转换它:
void test(short s){}
test(1) //invalid
test((short)1) //valid
在return
类型上它又可以了。
short test(){
return 1; //valid
}
为什么编译器有时想知道数字的范围(至少从常量中),而它似乎在别处忘记了它?