首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Collections.sort比较2个对象引发空指针异常

Collections.sort比较2个对象引发空指针异常
EN

Stack Overflow用户
提问于 2015-07-12 13:35:41
回答 1查看 4.4K关注 0票数 1

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

代码语言:javascript
运行
复制
Collections.sort(venuesList, new Comparator<FoursquareVenue>() {

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


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

我想我只是遗漏了一些小的愚蠢的事情,但是我不能弄清楚问题是什么,错误是这样的

代码语言:javascript
运行
复制
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)

我认为我需要处理对象的空值,但我不知道如何才能做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2015-07-12 13:40:42

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

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

代码语言:javascript
运行
复制
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;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31364715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档