0

このコードは適切なベクトルにオブジェクトを追加すると思っていましたが、null ポインター例外が発生しています。Actor a期待どおりに機能しているため、存在することはわかっactors.add(a)ています。オブジェクトがインターフェイスを実装しているかどうかをテストする方法を調査しましたが、見つけることができたすべての例は、そのインターフェイスのインスタンスを必要とするメソッドを呼び出す代わりに、インターフェイスのメソッドを呼び出す方法を詳しく説明していました。

public void addActor(Actor a) {
    actors.add(a); // actors is a vector
    if (a instanceof Drawable) {
        panel.addDrawable((Drawable) a);
    }
}

そしてパネルで:

public void addDrawable(Drawable d) {
    images.add(d); // images is a vector
}
4

1 に答える 1

1

null ポインター例外が発生しています。Actor a期待どおりに機能しているため、存在することはわかっactors.add(a)ています。

Vector.add(null)は発生しませんNullPointerExceptionjavadocは言う

public boolean contains(Object o)

trueこのベクターに指定された要素が含まれているかどうかを返します。より正式には、このベクトルが のような要素 e を少なくとも 1 つ含む場合にのみ true を返します(o==null ? e==null : o.equals(e))

于 2012-06-14T21:29:15.403 に答える