首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >为什么局部内部类访问外边的局部变量必须为final

为什么局部内部类访问外边的局部变量必须为final

作者头像
马克java社区
修改2021-04-06 10:51:01
修改2021-04-06 10:51:01
7290
举报
文章被收录于专栏:java大数据java大数据

6.局部内部类访问外边的局部变量时,此变量必须为final类型 

马克-to-win:由于技术方面的限制,java的设计者们做出如下语法规定:局部内部类访问外边的局部变量时,此变量必须为final类型,(为什么请参考我的参考目录)马克-to-win:否则会报一个错误:Cannot refer to a non-final variable i inside an inner class defined in a different method 

例2.6

class ShellMark_to_win {

   int x = 100;//x是类变量, 内部类访问时不用加final。

    void test() {

        for (int i = 0; i < 2; i++) {

/*马克-to-win:下面的y和str是局部变量,内部类访问时必须加final  */ 

            final int y=6;   

            final String str="aaa";

            class Core {

                void display() {

                    System.out.println("外部类的x=" + x+y+str);

                }

            }

            Core inner = new Core();

            inner.display();

        }

    //    Core inner = new Core(); //错误找不到Core。

    }

}

public class Test {

    public static void main(String args[]) {

        ShellMark_to_win s = new ShellMark_to_win();

        s.test();

    }

}

更多请见:https://blog.csdn.net/qq_44639795/article/details/103109941

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档