黑马程序员技术交流社区

标题: 求解 [打印本页]

作者: Anyway    时间: 2016-8-26 10:31
标题: 求解
方法中的内部类能不能访问方法中的局部变量?这个问题我验证的怎么就是能访问呢?求大神解惑

public class Test {
    public static void main(String[] args)throws Exception{
        Outer outer = new Outer();
        //获取内部类对象
        Object object = outer.outerfuc();
        Method method = object.getClass().getMethod("innerfuc");
        method.invoke(object);
    }

class Outer {
    public Object outerfuc(){
        int x = 6;
        class Inner{
            public void innerfuc(){
                System.out.println(x);
            }
        }
        Inner inner = new Inner();
        inner.innerfuc();
        return inner;
    }
}

}
作者: gsa798780633    时间: 2016-8-26 20:42
我用你的代码测试了。不行啊,你的jdk是1.8的吗?如果是1.8不会报错,x默认是final的
作者: Anyway    时间: 2016-8-27 11:46
gsa798780633 发表于 2016-8-26 20:42
我用你的代码测试了。不行啊,你的jdk是1.8的吗?如果是1.8不会报错,x默认是final的 ...

是的,我也知道了。我用的就是jdk1.8,不会报错
作者: Anyway    时间: 2016-8-27 11:49
gsa798780633 发表于 2016-8-26 20:42
我用你的代码测试了。不行啊,你的jdk是1.8的吗?如果是1.8不会报错,x默认是final的 ...

对,我就是用的jdk1.8,不会报错。之前的版本就需要加final
作者: Anyway    时间: 2016-8-27 11:51
gsa798780633 发表于 2016-8-26 20:42
我用你的代码测试了。不行啊,你的jdk是1.8的吗?如果是1.8不会报错,x默认是final的 ...

对,我就是用的jdk1.8,不会报错。之前的版本就需要加final




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2