For example:
int a = 10;
a += 1.5;
This runs perfectly, but
a = a+1.5;
this assignment says Type mismatch: cannot convert from double to int.
So my question is: what is the difference between += operator and = operator. Why the first assignment didn't says nothing, but second will. Please explain to me. Just I want to know whether I can use the first assignment to all place or not.
From the Java Language Specification section 15.26.2:
A compound assignment expression of the form
E1 op= E2is equivalent toE1 = (T) ((E1) op (E2)), whereTis the type ofE1, except thatE1is evaluated only once.
So the most important difference (in terms of why the second version doesn't compile) is the implicit cast back to the type of the original variable.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With