假设我有这样的课程:
class Outer {
public void getOuterValue() { }
class Inner {
public void getInnerValue() { }
}
}
我知道我可以创建这个类的对象:
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
但是假设我从其他方法中获取此对象:
void someMethodSomewhere(Outer o) {
// How do I call getInnerValue() here using o?
}
有没有办法在上面的场景中使用“o”调用“getInnerValue”方法?
请告诉我。
答案 0 :(得分:1)
没有。您需要有一个Inner
实例来调用方法。
外部类的实例是不够的(它会以相反的方式工作:内部类实例具有对外部类实例的引用)。
答案 1 :(得分:1)
void someMethodSomewhere(Outer o) {
// How do I call getInnerValue() here using o?
}
你不能。 getInnerValue()是Inner的一个方法。外面不是内在的,没有对内在的引用。当您递交o
时,无法从中导航到内部的任何实例,因为没有与o
相关联的实例。