我知道有人提出了与此问题相关的类似问题,但是我无法解决我的问题。我尝试将问题简化为以下代码 -
class Outer
{
Outer()
{}
class Inner
{
Inner()
{}
}
void func()
{
System.out.println("Outer");
}
}
public class Nested
{
public static void main(String args[])
{
Outer oo = new Outer();
Outer.Inner ii = oo.new Inner();
// ii.func(); I know this won't work
}
}
我可以从内部类“ii”的对象调用外部类函数“func()”吗??如果是,怎么办?
最佳答案
简短回答:对 Outer.this
的引用是 Inner
中的 private
,因此您无法访问对 Outer< 的引用
实例来自 Inner
的实例。
您可以这样导出此引用:
class Outer {
Outer() {
}
class Inner {
Inner() {
}
public Outer getOuter() {
return Outer.this;
}
}
void func() {
System.out.println("Outer");
}
}
然后你可以简单地这样做:
ii.getOuter().func();
关于java - 从内部类的对象访问外部类函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29863903/