class Outer{
public void Method(){
int i=10;
System.out.println(i);
Class InsideMethod{
//
}
}
问题:如何在方法
之外调用InsideMethod对象答案 0 :(得分:5)
此片段说明了各种可能性:
public class Outer {
void onlyOuter() { System.out.println("111"); }
void common() { System.out.println("222"); }
public class Inner {
void common() { System.out.println("333"); }
void onlyInner() {
System.out.println("444");// Output: "444"
common(); // Output: "333"
Outer.this.common(); // Output: "222"
onlyOuter(); // Output: "111"
}
}
}
注意:
common();
调用将从内部类调度实现。OuterClass.this
构造指定您要从外部类调度方法(绕过隐藏)onlyOuter()
从OuterClass
调度方法,因为这是定义此方法的最内层封闭类。答案 1 :(得分:3)
如果我理解了你想要的东西,你可以这样做:
OuterClass.this
答案 2 :(得分:2)
在外部的方法中定义 类
如果它在方法中定义,则其范围仅限于该方法。
答案 3 :(得分:0)
从我对你的问题的理解......(参见下面的例子),在外部类的方法中定义的类'Elusive'的实例不能从外部引用方法'doOuter'。
public class Outer {
public void doOuter() {
class Elusive{
}
// you can't get a reference to 'e' from anywhere other than this method
Elusive e = new Elusive();
}
public class Inner {
public void doInner() {
}
}
}