我不确定问题的措辞是否清楚,但举个例子会更清楚。
我发现这在 Java 中不起作用:
int a = ...;
a = 5.0;
但这将:
int a = ...;
a += 5.0;
也就是说,= 运算符似乎是类型安全的,但 += 不是。 这是否有任何深层原因,或者这只是语言设计者必须做出的另一个武断决定。
最佳答案
原因是数学运算会进行一些隐式转换:
a += 5.0;
计算如下:
a = (int) ((double) a + 5.0);
但是,赋值需要显式转换。
(它可能是 float 而不是 double,我不记得哪个 Java 将其视为十进制文字。)
关于java - 为什么 op-assign 运算符在 java 中不是类型安全的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/590868/