【发布时间】:2019-05-24 09:52:54
【问题描述】:
我有一个 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();
}
我得到的错误是
isEmpty()类型的方法Optional<Request>未定义
我正在使用这个版本的java
java.version=1.8.0_73
【问题讨论】:
-
有趣的是您使用
SimpleDateFormat,但同时使用Optional- 这意味着java-8... -
@JaneRyan Optional 不是列表,也不是请求。首先在可选项上执行 .get(),然后 .isEmpty()
-
与您的问题无关,但您的 Java 8 版本相当旧。将 Java 8 更新 73 与当前最新的 Java 8 更新 212 进行比较。
标签: java spring-mvc java-8 java-11