java - Strange Compilation Error Involving Casting -
i noticed rather strange when working in ide.
double x1 = 0, x2 = 0; int = (int) x1 = (int) x2; so invalid syntax, unsurprisingly. however, it's explanation of why it's invalid syntax confuses me. when put code in eclipse luna , hover on second line, message appears says:
type mismatch: cannot convert boolean int
1 quick fix available:
change type of 'a' 'boolean'
if ignore error , proceed run anyway, throwable stack trace shows same message:
exception in thread "main" java.lang.error: unresolved compilation problems: type mismatch: cannot convert boolean int syntax error on token "=", <= expected i don't understand why compiler thinks (int) x1 = (int) x2 sort of comparison evaluates true or false. have idea of why so?
the castoperator has higher priority assignment operators. due this, can't assign cast value x1, since compiler interprets as:
... cast x1 integer assign (int) x2 value of (int) x1 ... step 2 won't work, since (int) x1 no lvalue (sry using term c++, have no idea if there exists synonym in java).
Comments
Post a Comment