想问一下Stream流中sorted中间操作,对于下面这种情况有什么区别?

我这里是三级菜单以tree形显示,下面是流排序的中间操作

img

img

上面这两种会报空指针异常

下面这种就不会,这是什么原因呢。

img

sort是我实体类中的一个属性

img

Integer这种包装类在进行计算的时候会自动解包,就是转成基础的int类型,而如果本身Integer变量是null,那么在进行计算时就会报空指针。
对于你这里的情况,显然是有部分数据的sort属性为null

因为实体类中sort属性为Integer类型,可以为null,使用null判断可能会报空指针异常,方法中对象的null值判断和对象属性的null值判断时机会影响代码的执行流程,进而影响是否空指针