gpt4 book ai didi

java - Collections.sort 比较 2 个对象会抛出空指针异常

转载 作者:行者123 更新时间:2023-11-30 08:04:23 25 4
gpt4 key购买 nike

我正在使用 collections.sort 方法 int Compare 来比较 2 个对象的距离参数,并根据距离升序对它们进行排序。这就是我正在做的比较

Collections.sort(venuesList, new Comparator<FoursquareVenue>() {

@Override
public int compare(FoursquareVenue lhs, FoursquareVenue rhs) {


return lhs.getDistance().compareTo(rhs.getDistance());
}
});

我认为我错过了一些愚蠢的小事,但我无法弄清楚问题是什么错误说的是这样的

07-12 14:52:51.018: E/AndroidRuntime(1377): FATAL EXCEPTION: main
07-12 14:52:51.018: E/AndroidRuntime(1377): java.lang.NullPointerException:println needs a message
07-12 14:52:51.018: E/AndroidRuntime(1377): at android.util.Log.println_native(Native Method)
07-12 14:52:51.018: E/AndroidRuntime(1377): atandroid.util.Log.v(Log.java:117)

我认为我需要处理对象的空值,但我不知道该怎么做?

最佳答案

Log.v(...) 的第二个参数需要是 String 并且 getDistance() 方法可能返回

为了防止异常,你可以这样做:

if (lhs != null && rhs != null && lhs.getDistance() != null && rhs.getDistance() != null) {
Log.v("lhs Distance", lhs.getDistance());
Log.v("rhs Distance", rhs.getDistance());
return lhs.getDistance().compareTo(rhs.getDistance());
} else {
return -1;
}

关于java - Collections.sort 比较 2 个对象会抛出空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31364715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com