【发布时间】:2011-01-17 04:57:20
【问题描述】:
我尝试将我在网上找到的一个类调整为一个动态整数数组,用于动态“实体”数组,但现在我得到一个“NullPointerException”。
引发异常的代码是:
public void initialize()
{
buffer = new BufferedImage(800,600,BufferedImage.TYPE_INT_RGB);
Entities.put(Entities.getCurrentPos()+1, new Entity(100, 100, Color.green));
Entities.put(Entities.getCurrentPos()+1, new Entity(400, 400, Color.blue));
}
DynArrayEntities 类的相关部分:
...
private Entity[] data; // An array to hold the data.
private int currentpos = 0;
...
public void put(int position, Entity value) {
if (position >= data.length) {
int newSize = 2 * data.length;
if (position >= newSize)
newSize = 2 * position;
Entity[] newData = new Entity[newSize];
System.arraycopy(data, 0, newData, 0, data.length);
data = newData;
}
data[position] = value;
currentpos++;
}
....
public int getCurrentPos() {
return currentpos;
}
提前感谢您的帮助!
【问题讨论】:
-
在 Java 中出现异常时,堆栈跟踪非常重要。它详细地告诉您调用历史记录,并指出导致此异常的第一行。在不知道调用以及代码中第一行跟踪点的位置的情况下,很难(如果不是不可能的话)仅基于不代表 SSCCE (sscce.org) 的剥离代码给出可靠的答案。因此,在将来,请也发布堆栈跟踪。或者自己努力学习如何阅读/解释堆栈跟踪。
-
看起来像是初学者的编程作业。大多数人只会使用 Java 的内置类。
-
嘿。不知道有一个内置的 Java 类。 :D 恐怕我不擅长谷歌搜索......
-
除了堆栈跟踪,我们还需要查看声明
Entities的源代码。 -
了解标准类的最佳方法(您需要这样做)是学习相关的 Sun 教程(或同等教程)并浏览 J2SE javadocs。
标签: java arrays exception nullpointerexception dynamic-arrays