我有一个spring项目,其中有一个boolean方法,该方法使用optional来过滤一组请求。我尝试返回request.isEmpty()
时收到错误消息,我查了一下,可能使用的是Java的旧版本,但是有其他方法可以说request.isEmpty()
而不用更新Java版本为我担心如果我更新它,它将影响我的项目的其余部分
这是我的方法代码
private boolean hasNoDaysOffOnShiftDate(List<Request> requests, ShiftParams params) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // for string
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // for localdate
// Shift start date in LocalDate
String shiftDate = (params.start).format(formatter);
LocalDate formatDateTime = LocalDate.parse(shiftDate, formatter);
System.out.println("Shift date in date format " + formatDateTime);
Optional<Request> request = requests.stream().filter(req -> req.getStatus() == Status.Accepted)
.filter(req -> isDayOffOnShiftDate(req, formatDateTime)).findAny();
return request.isEmpty();
}
我得到的错误是
类型
isEmpty()
的方法Optional<Request>
未定义
我正在使用此版本的Java
java.version = 1.8.0_73
答案 0 :(得分:3)
Optional#isEmpty()
是Java 11方法,它是Java 8的!Optional#isPresent()
的快捷方式。
return !request.isPresent();