Java 8 比较器。比较((函数<;实体,子实体>;)实体::getSubEntity)。然后(子实体::getAmount));

Java 8 比较器。比较((函数<;实体,子实体>;)实体::getSubEntity)。然后(子实体::getAmount));,java-8,comparator,Java 8,Comparator,如果子实体为null,那么子实体本身的一些为null,那么子实体::getAmount null指针将如何避免使用 Comparator.nullsLast( Comparator.comparing(((函数)实体::getSubEntity) 第三(子实体::getAmount)); 如果不不惜一切代价尝试使用方法引用,代码的可读性就会大大提高:Comparator.comparating(entity->entity.getSubEntity().getAmount())。null的策略必

如果子实体为null,那么子实体本身的一些为null,那么子实体::getAmount null指针将如何避免使用

Comparator.nullsLast(
Comparator.comparing(((函数)实体::getSubEntity)
第三(子实体::getAmount));

如果不不惜一切代价尝试使用方法引用,代码的可读性就会大大提高:
Comparator.comparating(entity->entity.getSubEntity().getAmount())
。null的策略必须由您定义。例如,将它们视为最小值或最大值,或者干脆禁止它们并抛出异常。我推荐后者。这能回答你的问题吗?
Comparator.nullsLast(
  Comparator.comparing(((Function<Entity, SubEntity>)Entity::getSubEntity)
            .andThen(SubEntity::getAmount))));