为什么 Java 增量运算符允许在没有显式强制转换的情况下缩小操作的范围?
2022-09-01 13:22:29
可能的重复:
Java += 运算符
在Java中,这是无效的(不编译),正如预期的那样:
long lng = 0xffffffffffffL;
int i;
i = 5 + lng; //"error: possible loss of magnitude"
但这完全没问题(?!
long lng = 0xffffffffffffL;
int i = 5;
i += lng; //compiles just fine
这显然是一个缩小范围的操作,可能会超过范围。那么为什么编译器不抱怨呢?int