The following Java code is throwing a compiler error:
if ( checkGameTitle(currGame) )
ArrayList<String> items = parseColumns( tRows.get(rowOffset+1), currGame, time, method );
checkGameTitle
is a public static function, returning a boolean. The errors are all of the type "cannot find symbol" with the symbols being variable ArrayList
, variable String
and variable items
.
However, if I add {curly braces} then the code compiles with no errors. Why might this be? Is there some ambiguity on the if
clause without them?
If you declare a variable items
at this point, it's not accessible from anywhere. So it would make no sense to allow this construct.
OTOH, when you open a block, it still makes no sense to do the same thing (at first). But it's expected, that you'll want to extend the block later, and that it will eventually make sense.