java - 在内部类中访问外部类变量

标签 java inner-classes

在内部类中,可以访问外部类的变量,但不能访问方法的局部变量。我理解有关方法的局部变量不可访问的部分,但我想知道为什么外部类变量可以访问?

我的理解是,由于内部类与外部类绑定(bind),因此只要父类可用,子类就可以访问其父类变量。我说得对吗?

最佳答案

假设你的外部类名为Outer,从内部类的作用域(非静态),Outer.this.foo即可获取该字段。

例如,

Outer.this.foo=new ArrayList<>();

其中 Outer 是类的名称,foo 标识字段。

您也可以直接使用 foo=new Baz() 获取它,但如果由于阴影而出现命名冲突,它会选择内部字段。

如果是静态内部类,则需要显式实例:

outerInstance.foo=new ArrayList<>();

或者如果要访问的字段是静态的,则像平常一样访问它:

Outer.staticFoo=new ArrayList<>();

关于java - 在内部类中访问外部类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17578820/

相关文章:

java - 如何创建通用的 FlatFileItemReader 来读取具有不同标题的 CSV 文件?

java - 内部类的目的是什么

Swift 继承嵌套/内部枚举问题

java - 无法调用派生内部类的实例方法

java - 为什么我的 fragment 没有取代我的 Activity 布局?

java - Jasper 时间序列日期轴 : show monthly ticks but yearly tick labels

Java 堆空间不足

java - 无法找出Java中此RandomAccessFile代码的错误

java - 内部类和局部变量

python - 以反射方式在 Python 中创建嵌套类