为什么i = i + j与i + = j不同

时间:2016-03-11 13:16:56

标签: java increment

我有以下代码

int i = 5;
long j = 5;

1. i = i + j; // Throwing an exception "Type mismatch: cannot convert from long to int"
2. i += j; // This working fine

正如你可以看到第一个案例抛出异常但第二个案件正常工作。

为什么第二种情况工作正常而没有抛出任何异常?

1 个答案:

答案 0 :(得分:1)

+=compound statement,编译器在内部投射它。在第一种情况下直接声明和编译器哭泣。