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
itemsat 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.