【发布时间】:2014-06-10 02:25:57
【问题描述】:
在java中,如果你有一个类(非静态),然后里面有一个内部类(也是非静态的),你如何从内部类中获取对外部类对象的引用?
public class Fish {
public class Fin {
Fish fish = _____;
}
}
我想将 Fish 对象存储在 Fin 类的变量 fish 中。
有人知道吗?
【问题讨论】:
在java中,如果你有一个类(非静态),然后里面有一个内部类(也是非静态的),你如何从内部类中获取对外部类对象的引用?
public class Fish {
public class Fin {
Fish fish = _____;
}
}
我想将 Fish 对象存储在 Fin 类的变量 fish 中。
有人知道吗?
【问题讨论】:
你使用
Outer.this
你的情况
Fish.this
【讨论】:
super.this 这样的东西不起作用?
super 指的是超类,而不是包含类,因此在语言设计期间几乎肯定会拒绝针对这种情况更改其语义。 super.this 也有些矛盾——你不能同时从超类的命名空间和当前对象的命名空间中获取一些东西。这没有意义。
this 和包含类的this 的一种方式,因为内部类可以访问包含类的方法。