簡體   English   中英

方法局部內部類

[英]Method Local Inner Class

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打印消息嗎?

您只能實例MethodLocalInneraMethod 那樣做

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();

你為什么不只是創建的實例MethodLocalInner ,在aMethod ,並調用bMethod的新實例?

你需要在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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM