在判断 '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' 不为空才执行后续逻辑。

Java 中使用 Optional 类优化代码,避免空指针异常

原文地址: https://www.cveoy.top/t/topic/qFHW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录