[ miljan9602 @ 12.11.2013. 09:54 ] @
Trazim pomoc oko nekog operator na stackoverflow sajtu i vidim pitanja "Java += operator"

I evo u cemu je fora

ako napisemo

short i=5;
long j=8;

i+=j;
ce moci da se kompajluje, a kad napisemo
i=i+j;
ne moze da se kompajluje zasto to ?

evo linka "http://stackoverflow.com/questions/8710619/java-operator"






[ Rapaic Rajko @ 12.11.2013. 15:52 ] @
Hehe, sad si mi upravo otvorio oci za neki "cudan" kod koji sam video negde ranije. (i ja sam pocetnik)

Pitao sam se zasto se za inicijalizaciju tek deklarisane varijable drugom varijablom (prosta dodela vrednosti), koristi "+=" umesto "=". Upravo iz razloga koji si otkrio: operatori rade konverziju tipova "u letu" :)
Tnx!

Pozz
[ Boris_ZR @ 17.11.2013. 19:39 ] @
x += y operator se svodi na sledeće:

x = (tip od x) (x + y), odnosno umeće se cast operator.

Primer:
short x = 1;
short y = 2;

x = x + y --> compile error, sabiranje 2 short-a rezultuje int-om (da, znam da je čudno), a int ne može da se upiše u short bez eksplicitnog cast-a.
Dok npr. x += y --> x = (short) (x+y) --> nakon sabiranja i dobijanja int-a, rezultat se cast-uje u short i otuda kompajliranje prolazi bez problema.