gpt4 book ai didi

java - ArrayList 排序时出现 NullPointer

转载 作者:行者123 更新时间:2023-12-01 12:24:51 24 4
gpt4 key购买 nike

当我尝试使用“ObjectEpisodes”对数组列表进行排序时,出现 NullPointerException。

当我尝试对 ArrayList 进行排序时,会出现空指针,但某些对象没有要排序的日期。我通过 JSON 和 API 调用获取这些信息。

处理这些空指针的最佳方法是什么?

我的对象实现了 Comparable:

        public Date getDateTime() {
return convertDate(getAirdate());
}

public Date convertDate(String date)
{
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date inputDate = null;
try {
inputDate = dateFormat.parse(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return inputDate;
}

@Override
public int compareTo(SickbeardEpisode another) {
return getDateTime().compareTo(another.getDateTime());
}

这是我调用 Collections.sort(episodes) 的地方:

private static List<ObjectEpisodes> parseEpisodes(String url) {
List<ObjectEpisode> episodes = new ArrayList<ObjectEpisode>();

String json = download(url);

try {
JSONObject result = new JSONObject(json);
JSONObject resultData = result.getJSONObject("data");
Iterator<String> iter = resultData.keys();
while (iter.hasNext()) {
String key = iter.next();
JSONObject value = resultData.getJSONObject(key);
ObjectEpisode episode = new ObjectEpisode(value);
series.add(serie);
}
}
catch (JSONException e)
{
e.printStackTrace();
}

Collections.sort(episodes);

return series;
}

最佳答案

如果你需要处理null我会改变这个

@Override
public int compareTo(SickbeardEpisode another) {
return getDateTime().compareTo(another.getDateTime());
}

类似于

@Override
public int compareTo(SickbeardEpisode another) {
Date d = getDateTime();
if (d == null) {
if (another == null || another.getDateTime() == null) return 0;
return -1;
}
return d.compareTo(another.getDateTime());
}

关于java - ArrayList 排序时出现 NullPointer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26445116/

24 4 0