Но почему статический метод локального класса не может получить доступ к локальной переменной включающего блока?
Код: Выделить всё
public class Sequence {
public static void main(String... args) {
String message = "Bye bye";
class EnglishGoodbye {
public static void sayGoodbye() {
System.out.println(message); // Error: non-static variable message
// cannot be referenced in static context
}
}
EnglishGoodbye.sayGoodbye();
}
}
Когда статический метод вызывается из экземпляра локального класса class, код компилируется и может получить доступ к локальной переменной.
При вызове статического метода без экземпляра локального класса доступ к локальной переменной невозможен.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ocal-class
Мобильная версия