Java Comparator.NullLast throwing NPE



对映射进行排序<字符串,对象>

字符串值可以是Integer、Double或normal(必须将字符串解析为Integer(

[一次,所有密钥将仅为一种数据类型]

密钥可以为空

nullsLast(comparing(o -> Double.valueOf(o.getKey())));

正在投掷NPE。

如何使其发挥作用?

抛出NullPointerException的不是nullsLast,而是Double.valueOf(String)方法。

您可以通过显式检查null来处理此问题。

第二个问题是comparing不支持空值。您要做的是通过对象的键(解析为Double(来比较对象,使用nullsLast比较器来比较键:

comparing(o -> o.getKey() == null ? null : Double.valueOf(o.getKey()), nullsLast(Comparator.naturalOrder()));

最新更新