La verdad sobre el operador "+=" en Java


Podria parecer que el siguiente codigo:

i += j;

Es equivalente a este otro:

i = i + j;

Pero si hacemos lo siguiente:


int i = 5;
long j = 8;

Veremos que este código:

i += j;


Si compila mientras que este otro:

i = i + j;

Pues bien esto sucede porque de hecho el operador "+=" es un operador que equivale a lo siguente:
i = (type de i) (i + j)
Este es un extracto de la misma página de Oracle:
A compound assignment expression of the form E1 op= E2 is equivalent to E1 = (T)((E1) op (E2)), where T is the type of E1, except that E1 is evaluated only once.

No hay comentarios:

Publicar un comentario