未定义类型 Optional 的方法 isEmpty()

Jan*_*yan 6 java spring-mvc java-8 java-11

我有一个 spring 项目,我有一个布尔方法,它使用 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();

}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

isEmpty()类型的方法未定义Optional<Request>

我正在使用这个版本的java

java.version=1.8.0_73

And*_*lko 18

Optional#isEmpty()是一个 Java 11 方法,它是 Java 8 的!Optional#isPresent().

return !request.isPresent();
Run Code Online (Sandbox Code Playgroud)