首页 > 解决方案 > 如何通过使用 collections.sort 来使用修剪和避免 NPE?

问题描述

有一个 Class Role,其数据成员为 String roleName。我必须对列表进行排序Role。在排序时,我还需要检查 NPE 和修剪roleName。所以我用

roleList.sort(Comparator.comparing(Role::getRoleName, 
    Comparator.nullsLast(Comparator.naturalOrder())));

我可以抑制空指针异常,但不能使用trim.

roleList.sort( (x, y) -> x.getRole().trim().compareTo(y.getRole().trim()));

使用它我无法避免 NPE。

标签: javasortinglambdajava-8comparator

解决方案


这个怎么样:

roleList.sort(Comparator.comparing(Role::getRoleName,
    Comparator.nullsLast(Comparator.comparing(String::trim))));

推荐阅读