A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Anyway 中级黑马   /  2016-8-26 10:31  /  577 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

方法中的内部类能不能访问方法中的局部变量?这个问题我验证的怎么就是能访问呢?求大神解惑

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;
    }
}

}

4 个回复

倒序浏览
我用你的代码测试了。不行啊,你的jdk是1.8的吗?如果是1.8不会报错,x默认是final的
回复 使用道具 举报
gsa798780633 发表于 2016-8-26 20:42
我用你的代码测试了。不行啊,你的jdk是1.8的吗?如果是1.8不会报错,x默认是final的 ...

是的,我也知道了。我用的就是jdk1.8,不会报错
回复 使用道具 举报
gsa798780633 发表于 2016-8-26 20:42
我用你的代码测试了。不行啊,你的jdk是1.8的吗?如果是1.8不会报错,x默认是final的 ...

对,我就是用的jdk1.8,不会报错。之前的版本就需要加final
回复 使用道具 举报
gsa798780633 发表于 2016-8-26 20:42
我用你的代码测试了。不行啊,你的jdk是1.8的吗?如果是1.8不会报错,x默认是final的 ...

对,我就是用的jdk1.8,不会报错。之前的版本就需要加final
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马