一个局部内部类可以访问非final的外部对象?

 class Outer1
{
    int x=100;
    void method(int a)
    {
        int y=4;
        class Inner    
        {

             void function()
            {
                System.out.println(y);  
            }

        }
        new Inner().function();   
    }

}




public class InnerDemo2 
{
    public static void main(String[]args)
    {
        new Outer1().method(7);

    }

}

看公开课上说,局部内部类只能访问final的变量,为什么我可以,是JDK版本不同的原因吗?还是什么?

图片说明

用你的代码测试,确实会报错,我的jdk是1.8的