0

FavPic 是一个数组,其中存储了一个图片元素,我试图将变量 pRef 设置为等于该数组元素。相反,我不断收到 Null Pointer Exception 崩溃。究竟什么是空指针异常,这几行代码是如何导致这样的事情的?谢谢!

   public void setFavouritePicture (Picture pRef)
  {
    pRef = favPic[0];
   }
4

4 回答 4

0

在你的main,你应该有这样的东西

Picture[] favPic = new Picture [1];// 1 is the number of pics
favPic = setFavouritePicture(favPic);

你的setFavouritePicture方法应该是这样的

public static Picture[] setFavouritePicture (Picture[] pRef){
    for (int i = 0; i < pRef.length; i++) {
        pRef[i] = new Picture();
    }
    pRef[0] = ... ; // "..." is your picture
    return pRef;
}
于 2013-06-23T08:26:26.473 回答
0

NullPointerException当某事物为空或未定义时调用A。您要么尝试从未声明的数组中获取值,要么尝试从尚未定义的数组中获取值。

例如,如果我有一个int[]包含 1、2 和 3 的值,并且我尝试说System.out.println(int[3]),它不会起作用,因为没有值。

运行以下检查,让我知道你得到了什么:

System.out.println(favPic == null);

System.out.println(favPic[0] == null);

于 2013-05-03T17:13:02.873 回答
0

ANullPointerException表示您尝试在引用的对象引用上调用方法null(更常见),或者像这里一样,尝试引用引用的数组的特定元素null

只需要 2 行代码就可以导致一个NullPointerException- 一个声明一个引用变量,以便它是null,另一个尝试用它做一些事情。

您必须创建数组以在使用它之前对其进行初始化。

于 2013-05-03T17:01:10.670 回答
0

当您尝试访问一个对象时,它的值是null(它可能没有被属性初始化,或者它可能被手动分配了值null)。

在您的情况下,当您尝试访问using的第一个值时,数组favPic可能会失败并抛出。nullfavPicfavPic[0]NullPointerException

于 2013-05-03T17:27:53.250 回答