Powiel możliwe:
Java += operatorDlaczego operator inkrementacji Java pozwala na zawężanie operacji bez jawnego rzutowania?
W Javie, to nie jest ważne (nie skompilować), zgodnie z oczekiwaniami:
long lng = 0xffffffffffffL;
int i;
i = 5 + lng; //"error: possible loss of magnitude"
Ale to jest w porządku (?!)
long lng = 0xffffffffffffL;
int i = 5;
i += lng; //compiles just fine
Jest to oczywiście operacja zwężania, która może prawdopodobnie przekroczyć zakres int
. Dlaczego więc kompilator nie narzeka?
To pytanie zachęca do dyskusji zamiast jednoznacznej odpowiedzi. –