public class Test {
public static void main(String[] args) {
}
}
class Outer {
void aMethod() {
class MethodLocalInner {
void bMethod() {
System.out.println("Inside method-local bMethod");
}
}
}
}
有人可以告诉我如何从bMethod
打印消息吗?
答案 0 :(得分:6)
您只能在MethodLocalInner
内实例化aMethod
。
void aMethod() {
class MethodLocalInner {
void bMethod() {
System.out.println("Inside method-local bMethod");
}
}
MethodLocalInner foo = new MethodLocalInner(); // Default Constructor
foo.bMethod();
}
答案 1 :(得分:1)
在声明类 MethodLocalInner 之后的 aMethod 方法中,您可以进行以下调用:
new MethodLocalInner().bMethod();
答案 2 :(得分:1)
为什么不在MethodLocalInner
中创建aMethod
的实例,并在新实例上调用bMethod
?
答案 3 :(得分:0)
这可能会让你开始,(我没有任何方便测试)。请注意修改后的构造函数语法:
http://java.sun.com/docs/books/tutorial/java/javaOO/nested.html
答案 4 :(得分:0)
你需要在main方法中调用新的Outer()。aMethod()。您还需要在aMethod()中添加对MethodLocalInner()。bMethod()的引用,如下所示:
public class Test {
public static void main(String[] args) {
new Outer().aMethod();
}
}
void aMethod() {
class MethodLocalInner {
void bMethod() {
System.out.println("Inside method-local bMethod");
}
}
new MethodLocalInner().bMethod();
}