2
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吗?

4

4 回答 4

6

您只能MethodLocalInneraMethod. 也一样

void aMethod() {

    class MethodLocalInner {

            void bMethod() {

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

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

}
于 2008-09-17T06:51:26.840 回答
1

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

new MethodLocalInner().bMethod();
于 2008-09-17T06:51:29.417 回答
1

为什么不直接创建MethodLocalInner、 in的实例aMethod并调用bMethod新实例?

于 2008-09-17T06:52:36.777 回答
0

您需要在 main 方法中调用 new 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();
}
于 2013-10-10T10:07:37.360 回答