我正在使用collections.sort方法int比较比较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)
我想我需要处理对象的空值,但我不知道我该怎么做?
答案 0 :(得分:1)
Log.v(...)
的第二个参数必须是String
,而getDistance()
方法可能会返回null
为防止异常,您可以执行以下操作:
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;
}