在内部类中,可以访问外部类的变量,但不能访问方法的局部变量.我理解一个关于方法的局部变量不可访问的部分,但我想知道为什么外部类变量是可访问的?
我的理解是,当内部类与外部类绑定时,只要父类可用,子进程就可以访问其父变量.我对么?
解决方法:
假设你的外部类被称为Outer,从内部类的范围(非静态),Outer.this.foo来到该字段.
例如,
Outer.this.foo=new ArrayList<>();
其中Outer是类的名称,foo标识字段.
您也可以直接抓取它作为foo = new Baz()但如果由于阴影导致命名冲突,它将选择内部字段.
如果它是一个静态内部类,则需要一个显式实例:
outerInstance.foo=new ArrayList<>();
或者如果要访问的字段是静态的,请像往常一样访问它:
Outer.staticFoo=new ArrayList<>();
标签:java,inner-classes 来源: https://codeday.me/bug/20190925/1817685.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。