Java 中使用 Optional 类优化代码,避免空指针异常
在判断 'getStartDatetime' 不为空之后再执行 'Collections.max' 方法,可以使用 'Optional' 类来判断。
List<LiveUserRecord> liveUserRecordList = liveUserRecordMap.get(userId);
LiveUserRecord latestRecord = liveUserRecordList.stream()
.filter(record -> record.getStartDatetime() != null)
.max(Comparator.comparing(LiveUserRecord::getStartDatetime))
.orElse(null);
if (latestRecord != null && Objects.equals(latestRecord.getCarRealRecordId(), carRealRecord.getCarRealRecordId()) && latestRecord.getStartDatetime() != null && latestRecord.getEndDatetime() == null){
latestRecord.setEndDatetime(new Date());
long totalTime = (new Date().getTime() - latestRecord.getStartDatetime().getTime()) / (60 * 1000);
latestRecord.setTotalTime((int) totalTime);
latestRecord.setTime(new Date());
}
这样可以保证 'latestRecord' 不为空且 'getStartDatetime' 不为空才执行后续逻辑。
原文地址: https://www.cveoy.top/t/topic/qFHW 著作权归作者所有。请勿转载和采集!