【发布时间】:2013-12-16 03:19:21
【问题描述】:
这里有一个奇怪的地方:
float a = 0;
a = a + Math.PI; // ERROR
然而:
a += Math.PI; // OK!
即使这样也有效:
int b = 0;
b += Math.PI; // OK, too!
为什么+= 运算符允许有损隐式类型转换?
【问题讨论】:
-
我之前已经在 SO 上阅读过这篇文章,但遗憾的是我无法立即为您找到答案。如果我回来时没有回答,我会再为你搜索。
-
很奇怪,但是是的,这对我来说是一个众所周知的事实。我想我在一本关于 SCJP 的准备书或其他一些书中遇到了它。这是一个已知的特性,也许这就是语言规范所说的。
-
如果 arshajii 的回答(或者我的,如果你真的这么认为的话)正确且令人满意地回答了你的问题,你能“接受”它吗?如果两个答案都不令人满意,我建议在问题中添加赏金。
标签: java type-conversion