Я заметил странное поведение Eclipse версии 4.2.1, сообщающее мне эту ошибку:
String cannot be resolved to a variable
С этим кодом Java:
if (true)
String my_variable = "somevalue";
System.out.println("foobar");
Вы могли бы подумать, что этот код оченьпрямо, условное условие истинно, мы устанавливаем my_variable в somevalue.И это должно напечатать foobar.Правильно?
Неправильно, вы получаете вышеупомянутую ошибку времени компиляции.Eclipse пытается помешать вам сделать ошибку, предполагая, что оба оператора находятся в операторе if.
Если вы поместите фигурные скобки вокруг условного блока, например:
if (true){
String my_variable = "somevalue"; }
System.out.println("foobar");
Затем он компилируетсяи работает нормально.Очевидно, условные скобки с плохими скобками - это хорошая игра для генерации ошибок времени компиляции.