【发布时间】:2014-05-25 02:05:48
【问题描述】:
我在尝试对二维数组中的对象使用方法时收到空指针异常。
我是这样声明数组的:
Color[][] rgbArray = new Color[height][width];
这显然是一个颜色对象的数组。然后我使用以下方法将颜色对象添加到数组中:
for (int y = 0; y < (height); ++y) {
for (int x = 0; x < (width); ++x) {
rgbArray[y][x] = new Color(img.getRGB(x, y));
}
}
这是使用缓冲图像“img”中的 rgb 值在适当的数组索引处创建颜色对象。
然后我尝试使用类似这样的方式访问这些值:
for (int y = tempStartlimit; y < (tempEndlimit); ++y) {
for (int x = tempStartlimit; x < (tempEndlimit); ++x) {
int red += rgbArray[y][x].getRed();
int green += rgbArray[y][x].getGreen();
int blue += rgbArray[y][x].getBlue();
}
}
为什么这不起作用?
非常感谢任何帮助。
【问题讨论】:
-
哪一行代码抛出了 NPE?是
img还是null? -
tempStartlimit 和 tempEndlimit 的值是多少?
-
对于这样的问题,您至少要发布堆栈的前几行。更好的是,只要看看它们,你应该就能弄清楚自己了。
-
@fluffybonkers 这并没有说清楚,只是增加了混乱。
-
你能发布完整的代码吗?我的猜测是你有一个错误,比如
Color[][] rgbArray;在类中声明为一个字段,而在构造函数中你有Color[][] rgbArray = new Color[height][width];(这是一个新声明并隐藏了该字段)但是用这么小的 sn-p 是不可能的.
标签: java arrays object image-processing