【问题标题】:Java get outer class from inner class? [duplicate]Java从内部类获取外部类? [复制]
【发布时间】:2014-06-10 02:25:57
【问题描述】:

在java中,如果你有一个类(非静态),然后里面有一个内部类(也是非静态的),你如何从内部类中获取对外部类对象的引用?

public class Fish {
     public class Fin {
           Fish fish = _____;
     }
}

我想将 Fish 对象存储在 Fin 类的变量 fish 中。

有人知道吗?

【问题讨论】:

    标签: java class


    【解决方案1】:

    你使用

    Outer.this
    

    你的情况

    Fish.this
    

    【讨论】:

    • 你能解释一下为什么当类不是静态的时候你会使用类名。还有为什么像super.this 这样的东西不起作用?
    • @omega super 指的是超类,而不是包含类,因此在语言设计期间几乎肯定会拒绝针对这种情况更改其语义。 super.this 也有些矛盾——你不能同时从超类的命名空间和当前对象的命名空间中获取一些东西。这没有意义。
    • @omega 另外,这里的类名实际上与静态/非静态的东西没有任何关系;这只是区分内部类的this 和包含类的this 的一种方式,因为内部类可以访问包含类的方法。
    • @omega 此外,您可以嵌套任意数量的内部类,并使用此语法在嵌套中引用任意多的级别。
    猜你喜欢
    • 1970-01-01
    • 2021-01-16
    • 2023-01-24
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多