Java 从内部类外部封闭内部类的外部类实例引用

Java 从内部类外部封闭内部类的外部类实例引用,java,inner-classes,Java,Inner Classes,每个内部类实例“生活”在其外部类的实例中。问题是-当内部类没有指向其外部类实例的成员时,如果给定内部类的实例,如何引用外部类的实例 例如:在下面的示例中,方法check()从internal中提供了对Outer类实例的所需引用,以供最终使用 public class Outer { int cnt = 0; class Inner { boolean check() { return cnt==10; } } public static void stuff(O

每个内部类实例“生活”在其外部类的实例中。问题是-当内部类没有指向其外部类实例的成员时,如果给定内部类的实例,如何引用外部类的实例

例如:在下面的示例中,方法
check()
internal
中提供了对
Outer
类实例的所需引用,以供最终使用

public class Outer {

int cnt = 0; 

class Inner {
    boolean check() {
    return cnt==10;
    }

}

public static void stuff(Outer.Inner in) {
    if (in.check()) 
    // if (<cnt value of its enclosing Outer class instance is 10>) 
    //      do sth here
    ;
}
}
那么,在中引用
outer.Inner的外部类实例的语法是什么,这样就可以引用该实例的
cnt
成员并从那里开始,而无需以任何方式更改
内部
类代码?

注:见和其他一些讨论。我希望访问外部类实例,而不是从内部类实例本身

蒂亚

//----------------

编辑:


黑体字是线索的一个关键部分

我认为没有帮助你是做不到的。您需要添加一个方法来返回封闭实例


cnt
是一个实例变量,所以它不仅仅是
outer.cnt
?@markspace-好吧-这就是Q。你首先要得到
outer
,这样你就可以引用它的成员
cnt
@Gab-它是重复的。参考thx。
public class Outer {

int cnt = 0; 

class Inner {

}

public static void stuff(Outer.Inner in) {
    if (<cnt value of its enclosing Outer class instance is 10>) 
    //      do sth here
    ;
}
}
public class Outer {

  int cnt = 0; 

  class Inner {
    boolean check() {
      return cnt==10;
    }
    Outer getOuter() { return Outer.this; }    
  }

  public static void stuff(Outer.Inner in) {
    int count = in.getOuter().cnt;
  }
}