Eventuali duplicati:
Java += operatorPerché l'operatore di incremento Java consente operazioni di restringimento senza cast esplicito?
In Java, questo non è valido (non compila), come previsto:
long lng = 0xffffffffffffL;
int i;
i = 5 + lng; //"error: possible loss of magnitude"
Ma questo è perfettamente bene (?!)
long lng = 0xffffffffffffL;
int i = 5;
i += lng; //compiles just fine
Si tratta ovviamente di un'operazione di restringimento che può eventualmente superare l'intervallo int
. Quindi perché il compilatore non si lamenta?
Questa domanda invita discussione invece di una risposta netta. –