我是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(实际上根本没有方法)。

07-25 22:34