Java程序抛出NullPointerException

时间:2014-10-21 01:38:40

标签: java arrays nullpointerexception

我试图编写一个程序来创建一个媒体对象,我创建了一个继承自Media的Audio继承的Cassette类。我得到一个空指针异常,我已经尝试了几个小时来解决它,但我不知道它为什么被抛出。我提前感谢您的帮助,谢谢。

在我的应用程序类中,我发起以下内容:

static Media[] collection = new Media[100];

稍后在代码中我尝试创建一个新的Cassette对象,但它给了我所说的空指针异常。 我的代码是:

  collection[collection[0].getNumItems()] = new Cassette(cTitle, cMajorArtist, cPlayingTime, cNumPlays, cNumGroupMembers, cGroupMembers, pArtist, cNumSongs, cSongs);

传递到Cassette的所有项目都是用户输入数据。它编译得很好,但是当我运行它时我得到了一个错误。

修改
这是我的媒体类中的numItems值 static int numItems = 0;
以及返回项目数的方法:

public int getNumItems()
   {
      return numItems;
   }

感谢。

1 个答案:

答案 0 :(得分:0)

我建议你使用像Collection这样的ArrayList。使用diamond operator看起来像,

static List<Media> collection = new ArrayList<>();

然后您可以使用List#add(E)

collection.add(new Cassette(cTitle, cMajorArtist, cPlayingTime, 
    cNumPlays, cNumGroupMembers, cGroupMembers, pArtist, cNumSongs, cSongs));

编辑如果您想使用数组类型,那么

collection[collection[0].getNumItems()]

应该是

collection[Media.getNumItems()]

致电static getNumItems()中的Media。哪个应该

public static int getNumItems()
{
  return numItems;
}