0

私は次のようなものを持っています:

       public class A{
    public static B[] bObj;

    public A(){
        bObj = new B[2]; // create array of objects of class B
    }

    public static void main(String[] args){
        A aObj = new A();
        for(i=0;i<2;i++){
            bObj[i].testprint();
        }

    }
}

class B{
    public testprint(){
        System.out.println("Inside testprint()");
    }
}

これを実行すると、bObj[i].testprint() で NullPointer 例外が発生します。A のコンストラクターで new B() を実行しましたが、なぜ機能しないのかわかりません。

4

1 に答える 1

5

参照の配列を初期化しても、実際にはその中の参照が初期化されないことを理解してください。彼らはまだnullです。配列を反復して初期化する必要があります。

public A(){
    bObj = new B[2];
    for (int i = 0; i < bObj.length; ++i) { bObj[i] = new B(); }
}
于 2013-10-19T18:53:47.987 に答える