方法本地内部类

时间:2020-03-05 18:58:06  来源:igfitidea点击:
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打印消息吗?

解决方案

回答

这可能会让我们入门,(我没有任何方便的测试对象)。注意修改后的构造函数语法:

http://java.sun.com/docs/books/tutorial/java/javaOO/nested.html

回答

我们只能在aMethod中实例化MethodLocalInner。也一样

void aMethod() {

    class MethodLocalInner {

            void bMethod() {

                    System.out.println("Inside method-local bMethod");
            }
    }

    MethodLocalInner foo = new MethodLocalInner(); // Default Constructor
    foo.bMethod();

}

回答

在类MethodLocalInner声明之后的方法aMethod中,我们可以例如执行以下调用:

new MethodLocalInner().bMethod();

回答

为什么不只在aMethod中创建一个MethodLocalInner实例,然后在新实例上调用bMethod呢?