我有一个春季项目,其中我有一个布尔方法,该方法使用可选项来过滤一组请求。当我尝试返回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... - Eugene