You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中使用Comparator.comparing时如何先判空再比较关联对象属性

解决Comparator中空值排序的异常问题

原代码中由于category可能为null,调用ProjectCategoryVo::getName时会触发空指针异常。可以通过Comparator提供的nullsFirst或nullsLast方法处理空值场景:

  • 若希望空category排在最前,使用nullsFirst包裹内层比较器:
Comparator.comparing(
    ProjectVo::getCategory,
    Comparator.nullsFirst(Comparator.comparing(ProjectCategoryVo::getName))
)
  • 若希望空category排在最后,使用nullsLast包裹内层比较器:
Comparator.comparing(
    ProjectVo::getCategory,
    Comparator.nullsLast(Comparator.comparing(ProjectCategoryVo::getName))
)

这两个方法会优先处理空值:遇到category为null时直接按指定顺序排列,非空值才会执行ProjectCategoryVo::getName的比较逻辑,从根源避免空指针异常。

内容的提问来源于stack exchange,提问作者Shiv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 10:34:53