局部内部类应该只能访问被final修饰的局部变量,为什么我这个y也可以被访问?

发布网友 发布时间:2022-04-23 06:39

我来回答

1个回答

热心网友 时间:2023-10-05 23:12

谁和你说的内部类不能访问外部类的?
y是属于外部类的成员变量,内部类可以直接访问
内部类可以直接访问外部类中的成员,包括私有的
外部类是不能直接访问内部类的的,需要new 一个内部类的对象追问

原因应该是jdk版本1.8以后系统默认在xy前加final,我把版本降到1.6

报错:Cannot refer to the non-final local variable y defined in an enclosing scope

我定义的是局部内部类,局部内部类就是不能访问没有final修饰的外部类下的的成员变量。正常内部类是可以访问外部类中的成员变量,但是局部内部类和匿名内部类在1.8之前都需要final修饰

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com