The compiler is dumb. It has a hard time connecting things across multiple lines. Consider that legally, there could be 800 lines of code between those two lines you posted in your second example.
Never ascribe to malice that which can be adequately explained by stupidity.
Joined: Oct 13, 2005
The official definition of a "constant" is in the Java Language Specification (I think, here).
Do a search through this forum for "compile time constant" because that sort of question comes up regularly here. Some people say "runtime constant" but that does not appear to be an official Java term. You should find out about that from your search as well. Good luck with it