Java Comparator.NullLast 抛出 NPE [重复]
Posted
技术标签:
【中文标题】Java Comparator.NullLast 抛出 NPE [重复]【英文标题】:Java Comparator.NullLast throwing NPE [duplicate] 【发布时间】:2022-01-12 06:19:15 【问题描述】:对地图进行排序
String 值可以是 Integer、Double 或 normal(必须将 String 解析为 Integer)
[一次,所有键都只能是一种数据类型]
键可以为空
nullsLast(comparing(o -> Double.valueOf(o.getKey())));
正在抛出 NPE。
如何让它发挥作用?
【问题讨论】:
Double.valueOf
会抛出 NPE
如何处理
【参考方案1】:
抛出 NullPointerException 的不是 nullsLast
,而是 Double.valueOf(String)
方法。
您可以通过显式检查空值来处理此问题。
第二个问题是comparing
不支持空值。您要做的是按对象的键(解析为 Double)比较对象,使用 nullsLast
比较器比较键:
comparing(o -> o.getKey() == null ? null : Double.valueOf(o.getKey()), nullsLast(Comparator.naturalOrder()));
【讨论】:
``` public static以上是关于Java Comparator.NullLast 抛出 NPE [重复]的主要内容,如果未能解决你的问题,请参考以下文章