创建内部类时:Varible 'num' is accessed from within inner class, need to be final or effectively final

1、在创建内部类,并且匿名内部类在使用外部成员的时候会报错,需要将外部成员使用final修饰:

在进行 Java 文件的编译时,匿名内部类也会被当作普通的类处理,编译器生成它构造方法的时候,除了将外部类的引用传递了过来,还将基本数据类型的变量复制了一份过来,并把引用数据类型的变量引用也传递了过来。因此,如果对变量进行了修改,就会跟外部的变量产生不一致,就会导致冲突。

发布了43 篇原创文章 · 获赞 1 · 访问量 728

猜你喜欢

转载自blog.csdn.net/qq_39120849/article/details/104404770