i want convert piece code streams
list<ecsusu> listofusus = msccrequest.getusedserviceunit(); if (listofusus != null) { ecsusu usedserviceunit = listofusus.get(0); if (usedserviceunit.getcctime() != null && usedserviceunit.getcctime() > 0) { return unittype.seconds; } else { return unittype.bytes; } } i thought work getting nullpointerexception. msccrequest.getusedserviceunit() might return null , that's why need check
msccrequest.getusedserviceunit().stream() .filter(list -> list != null) .limit(1) .map(usedserviceunit -> { if (usedserviceunit.getcctime() != null && usedserviceunit.getcctime() > 0) { return unittype.seconds; } else { return unittype.bytes; } });
if msccrequest.getusedserviceunit() returns null, attempt call stream() method on throw nullpointerexception. expect npe comes that. need check null before calling stream() method.
also note 2 pieces of code not equivalent (even if above problem fixed). first code checks first element of list, while second takes first non-null element.
also, interested in single element of list. findfirst seems better choice limit.
list<ecsusu> listofusus = msccrequest.getusedserviceunit(); if (listofusus != null) { return listofusus.stream() .filter(objects::nonnull) .findfirst() .map(usedserviceunit -> { if (usedserviceunit.getcctime() != null && usedserviceunit.getcctime() > 0) { return unittype.seconds; } else { return unittype.bytes; } }) .orelse(/* default value */); }
Comments
Post a Comment