メソッドのisEmpty()はタイプのために定義されていないオプション

ジェーン・ライアン:

私は私が要求のセットを介してフィルタへのオプションを使用していますブールの方法を持って春のプロジェクトを持っています。イムは、私がリターンをしようとするとエラーになって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

アンドリューTobilko:

Optional#isEmpty()Javaの8のためのショートカットであるJavaの11の方法は、あります!Optional#isPresent()

return !request.isPresent();

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=331264&siteId=1