2015-07-12 965 views
1

我正在使用collections.sort方法int比较比较2个对象的距离参数并按照距离按升序对它们进行排序。 这里是我在做什么吧Collections.sort比较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) 

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

回答

1

的第二个参数Log.v(...)需要一个StringgetDistance()方法可能返回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; 
} 
+0

其实这是你说的话..它仍然会抛出相同的异常,我应该如何处理,如果getDistance返回空值... –

+0

@ChristianYoung是的,我已经改变了我的答案,它可能会返回'null'因此'NullPointerException' – Titus

+0

你是对的我只是在Logcat中看到当l hs.getDistance返回null它显示空指针异常,所以我应该怎么做来处理? –