El método estaVacia () está definido para el tipo opcional

Jane Ryan:

Tengo un proyecto primavera donde i tener un método booleano que utiliza opcional al filtro a través de un conjunto de peticiones. Im que consigue un error cuando intento de retorno request.isEmpty(), lo busqué y que podría estar usando una versión anterior de Java, pero ¿hay alguna manera alternativa decir request.isEmpty()sin tener que actualizar mi versión de Java como im preocupado si actualizo que, afectará el resto de mi proyecto

Este es mi código para el método

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();

}

El error que estoy recibiendo es

El método isEmpty()no está definida para el tipo deOptional<Request>

Estoy utilizando esta versión de Java

java.version = 1.8.0_73

Andrew Tobilko:

Optional#isEmpty()es un método Java 11, que es un acceso directo para Java 8 de !Optional#isPresent().

return !request.isPresent();

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=331267&siteId=1
Recomendado
Clasificación