代码:
Stream<DbPacket> dbPackets = getDataContext(false, isTrue).getPackets().values()
.stream();
dbPackets = dbPackets.filter(
dbPacket -> "A".equals(dbPacket.getTariff().getCode()));
并非每个数据包都可以有资费,例如:
数据包1具有资费,代码A
数据包2具有资费,代码B
数据包3没有资费,也没有代码
因此,在某些情况下,dbPacket.getTariff().getCode()
可以为空。我需要编辑我的代码,如果Packet没有Tariff,并且dbPacket.getTariff().getCode()
为空,那么过滤器将保留这个Packet。在这种情况下,系统必须返回分组1(因为代码是A(和分组3(因为分组没有资费和代码(。如何修改我的代码?
是什么阻止了你这么做?
dbPackets = dbPackets.filter(
dbPacket -> dbPacket.getTariff() == null || "A".equals(dbPacket.getTariff().getCode() || dbPacket.getTariff().getCode() == null );