[英]Java: How to get immediate parent(who is not the top level class) from an inner class?
我知道Java中静态嵌套类和内部类之间的区别。 我在谈论内心阶级。 我也知道我们可以使用“OuterClass.this”从内部类中获取外部类。
与目录一样,有两种导航方式:绝对和相对。 例如:“/ aaa / bbb / ccc / ddd”,如果我在文件夹“ccc”中并且想要引用“bbb”,我们可以:“cd / aaa / bbb”或“cd ..”。
现在来到Java内部类。
class AAA{
BBB b = new BBB();
class BBB{
CCC c = new CCC();
//CCC c = new CCC(b);
class CCC{
//SECOND VERSION
//BBB parent = null
//CCC(BBB parent_){
// parent = parent_;
//}
DDD d = new DDD();
BBB GetParent(){
return AAA.this.b; //I know this will work
//or return parent; if using the SECOND VERSION
}
class DDD{
}
}
}
}
我提供了两个版本:AAA.this.b并引入一个成员变量“parent”,并使用构造函数的参数赋值。
我的问题:如果我不引入成员变量,我可以使用相对的方式从内部类中获取它的直接父级吗? (比如cd ..)
您可以使用BBB.this
直接引用BBB类的封闭实例。
虽然通常内部类代码不需要对外部类的引用,因为它已经有一个隐式的用于访问外部类的成员,如果需要传递那个类,它需要引用外部类。参考其他一些代码。 如果这就是你想要的,只需使用第一个版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.