gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 01:56:21 25 4
gpt4 key购买 nike

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

例如:下面的方法check()提供所需的引用 Outer Inner 中的类实例为了最终的使用。

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
;
}
}

但是 - 假设方法 check()不存在。

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
;
}
}

那么,引用 Outer.Inner in 的外部类实例的语法是什么?以便大家可以引用cnt该实例的成员并从那里开始而不更改 Inner类代码以任何方式?

注意:已看到Reference outer class instance from inner classHow to refer to Enclosing class from Inner class?以及其他一些讨论。我希望不从内部类实例本身到达外部类实例。

TIA。

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

编辑:

将线索的一个关键部分加粗。

最佳答案

我认为在没有帮助的情况下你无法做到这一点。您需要添加一个方法来返回封闭实例。

Referencing an enclosing instance from an inner class

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;
}
}

关于java - 从外部内部类封闭内部类的外部类实例引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54383869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com