Java не должна разрешать использование статических методов внутри внутреннего класса, однако этот код компилируется и запускается. Как это возможно?
class Test{
static int j=20;
public void m1() {
class Inner{
public static void m2() {
System.out.println(j);
}
}
Inner inner = new Inner();
inner.m2();
}
public static void main(String[] args) {
Test obj = new Test();
obj.m1();
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... nner-class
Мобильная версия