Почему оператор приращения Java допускает сужение операций без явного приведения? [Дубликат]

Возможный дубликат:

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 спектр. Так почему нет компилятор жалуется?

Ответы на вопрос(3)

Ваш ответ на вопрос