2008-09-17 96 views
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消息?方法本地內部類

回答

6

您只能在aMethod實例MethodLocalInner。所以,做

void aMethod() { 

    class MethodLocalInner { 

      void bMethod() { 

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

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

} 
+0

Thanks..realised我哪裏wrong..I把新實例行localinner課前創建。 – Omnipotent 2008-09-17 07:00:52

1

在該方法的聲明後amethod方法 MethodLocalInner你可以例如做以下電話:

new MethodLocalInner().bMethod(); 
1

你爲什麼不只是創建一個實例MethodLocalInner,在aMethod,並且在新實例上調用bMethod

0

您需要在主方法內調用新的Outer()。aMethod()。您還需要添加到MethodLocalInner()的參考bMethod()您的amethod方法(內),這樣的:

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