2016-04-18 28 views
0

ネストされたクラスInnerClassB内でネストされたクラスInnerClassBをインスタンス化しようとしていますので、someMethodInB()メソッドを呼び出すことがあります。他の内部クラスの内部クラスをインスタンス化する方法

両方のネストされたクラスは、同じ親クラスで現職です。

public class Outer { 

    private class InnerClassA { 

    InnerClassB innerClassB= new innerClassB(); 
    innerClassB.someMethodInB(); 

    } 

    private class InnerClassB { 

      void someMethodInB(){} 
    } 
} 

私はこのエラー

未知のクラスを取得します:innerClassB.someMethodInB()

+1

私はタイプミスを訂正し、ブロック内に 'innerClassB'変数を含むコードを入れてみましょう:http://ideone.com/Nse9t8 – Radiodef

+0

' someMethodInB() 'の呼び出しがメソッド内にありません(またはイニシャライザブロック)。 – Andreas

+0

innerClassBのインスタンスを取得しますか? – progrAmmar

答えて

0

これは動作しますが、

public class TestSO { 
    private class InnerClassA { 

    void test(){  
    InnerClassB innerClassB= new InnerClassB(); 
    innerClassB.someMethodInB(); 
    } 
    } 

    private class InnerClassB { 

      void someMethodInB(){} 
    } 
    } 

まずアップは、Javaで、あなたは直接のステートメントを持つことができませんクラス内。つまり、ヒープ領域では実行されません。 someMethodinBの呼び出しをメソッドInnerClassAにラップする必要があります。 それと誤植が修正されます。

関連する問題