代码:
private Boolean isPackageInfoExist(ResultDTO<List<TransportPackageDTO>> listResultDTO,TransportPackageDTO transportPackageDTO){
List<TransportPackageDTO> transportPackageDTOS = listResultDTO.getModel();
if(CollectionUtils.isNotEmpty(transportPackageDTOS)){
Optional<TransportPackageDTO> first = transportPackageDTOS.stream().filter(o -> o.getPackageNo().contains(transportPackageDTO.getPackageNo())).findFirst();
if(first.get()!=null){
return Boolean.TRUE;
}
}
return Boolean.FALSE;
}
报错:
2019-03-03 18:56:00.050 [Thread-29] ERROR ServiceExceptionLogAspect(28) - 拦截到服务异常::com.service.impl.common.sorting.CommonPackageUpdateServiceImpl.insertTransportPackageInfo
java.util.NoSuchElementException: No value present
at java.util.Optional.get(Optional.java:135) ~[?:1.8.0_102]
at com.service.impl.common.sorting.CommonPackageUpdateServiceImpl.isPackageInfoExist(CommonPackageUpdateServiceImpl.java:386) ~[tms-service-biz-1.0-SNAPSHOT.jar:?]
at com.service.impl.common.sorting.CommonPackageUpdateServiceImpl.insertTransportPackageInfo(CommonPackageUpdateServiceImpl.java:210) ~[tms-service-biz-1.0-SNAPSHOT.jar:?]
定位问题:first.get()
,查看源码
public T get() {
if (value == null) {
throw new NoSuchElementException("No value present");
}
return value;
}
解决:
private Boolean isPackageInfoExist(ResultDTO<List<TransportPackageDTO>> listResultDTO,TransportPackageDTO transportPackageDTO){
List<TransportPackageDTO> transportPackageDTOS = listResultDTO.getModel();
if(CollectionUtils.isNotEmpty(transportPackageDTOS)){
Optional<TransportPackageDTO> first = transportPackageDTOS.stream().filter(o -> o.getPackageNo().contains(transportPackageDTO.getPackageNo())).findFirst();
if(first.isPresent()){
return Boolean.TRUE;
}
}
return Boolean.FALSE;
}