繁体   English   中英

Java:如何从内部类中获得直接父级(谁不是顶级类)?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM