我是Java的初学者,并且null
存在一些问题。我需要帮助来理解以下问题。我已经正确回答了它们,但是我不知道它们背后的确切原因。
题:
假设已使用ArrayList类型声明了轨道,请考虑以下事项:
public Track mostPlayed() {
Track most = tracks.get(0);
int i = 1;
while(i < tracks.size()) {
Track t = tracks.get(i);
if (t.getPlayCount() > most.getPlayCount()) {
most = t;
}
i++;
}
return most;
}
假设在执行
mostPlayed
方法期间抛出NullPointerException。假定执行单线程,由于此异常,因此以下几行代码仅是可能的。哪一个?我选择了第2行,因为它似乎是唯一合乎逻辑的答案,但由于我对这个概念不完全了解,因此我想在后面进行进一步说明。
最佳答案
Track most = tracks.get(0);
行可以引发NullPointerException
,因为如果track
已初始化,则代码不会显示。如果不是,则为null
,并且get
中没有方法null
(实际上根本没有方法)。