我有一个关于Java中的shorttypes的问题。 我正在使用JDK 1.6。 如果我有以下情况: short a = 2; short b = 3; short c = a + b; 编译器不想编译 – 它说“它不能从int转换为short”,并build议我把一个expression式转换为short ,所以这个: short c = (short) (a + b); 真的有用。 但我的问题是为什么我需要施放? a和b的值在short的范围内 – 短值的范围是{-32,768,32767}。 当我想要执行操作时,我也需要投射 – ,*,/(我没有检查过其他人)。 如果我对原始typesint做同样的操作,我不需要将aa + bb转换为int 。 以下工作正常: int aa = 2; int bb = 3; int cc = aa +bb; […]