【发布时间】:2021-01-13 03:48:45
【问题描述】:
得到了一个Object 实例(Sprites)的数组,得到了通过按鼠标左键向数组添加新对象的方法:
private void addSprite() {
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
int x = e.getX();
int y = e.getY();
Sprite sprite = new Ball(x, y);
if (sprites[sprites.length - 1] == null){
sprites[sprites.length - 1] = sprite;
}else if (sprites[sprites.length - 1] != null){
Sprite[] temp = new Sprite[sprites.length * 2];
System.arraycopy(sprites, 0, temp, 0, sprites.length);
sprites = temp;
}
}
});
}
如果arr 已满,我将创建新的临时数组,大小为sprites.length * 2,并复制temporary array 中的所有元素,并更改链接sprites = temp,我得到NullPointerException。任务仅使用数组添加新对象,而不是 ArrayList。
我做错了什么?
【问题讨论】:
-
为什么只检查最后一个索引?,如果 sprites.lenght - 2 也是 == null 怎么办,这个索引总是为 null,用数组列表代替,不要重新发明轮子。跨度>
标签: java arrays swing nullpointerexception