【发布时间】:2012-06-14 21:20:51
【问题描述】:
我认为这段代码会将一个对象添加到适当的向量中,但我得到了一个空指针异常。我知道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
}
【问题讨论】:
-
你可以在向量中添加空值。
-
我不知道问题是什么——“调用接口的方法而不是调用需要该接口实例的方法”是什么意思?
-
你得到的 NPE 唯一可能的地方是(如果你说你是积极的演员 a 不为空,那么
panel.addDrawable((Drawable) a);行必须是它。panel必须为 null,除非您没有向我们展示其他代码。向我们展示异常本身会很好。 -
请显示来自 NPE 的堆栈跟踪。
标签: java interface vector instanceof