【发布时间】:2014-12-06 13:03:47
【问题描述】:
我正在准备期末考试。它应该是一个“媒体库”,用于存储有关个人媒体(DVD、游戏等)的信息,除此之外它应该接收新的媒体项目,将它们存储到数组中并在出现提示时显示它们。它完成了所有这些,但是当它显示时,它在 getter 上有一个 NullPointerException,即使它按照我的意图执行它。
public class MediaItem {
private String title;
private String format;
private boolean onLoan;
private String loanedTo;
private String dateLoaned;
public MediaItem(){
title = null;
format = null;
onLoan = false;
loanedTo = null;
dateLoaned = null;
}
public MediaItem(String title, String format){
this.title = title;
this.format = format;
onLoan = false;
}
上面是创建“MediaItems”的类的字段和构造函数,我们被告知要调用它们
下面是另一个类的一部分,即库本身。一个数组用于存储媒体项,一个数组用于打印列表。还有 add 方法以及我如何将它们添加到数组中。
private MediaItem[] items = new MediaItem[100];
private String[] listOfItems = new String[100];
private int numberOfItems = 0;
public void addNewItem(String title, String format){
MediaItem item = new MediaItem(title, format);
items[numberOfItems] = item;
numberOfItems++;
}
这是我遇到问题的部分
public void listAllItems(){
for (int i = 0; i < items.length; i++){
System.out.println(items[i].getTitle());
}
}
这不是它应该做的,但我目前的问题是它确实打印出了整个项目列表,但也给出了 NullPointerException,我不知道为什么。被调用的 getter 是一个基本的 eclipse 生成的 getter
public String getTitle() {
return title;
}
这是一个我粗糙的 Java,所以我是新手,所以请温柔。我相信这是所有相关的部分,所以任何帮助表示赞赏!
【问题讨论】:
-
items[i]对于i的某个值肯定为空。如果你不调用addNewItem100 次,这行代码总会有一个 NPE。
标签: java arrays oop nullpointerexception getter