Я хочу использовать один оператор с потоками Java.
Я хочу отфильтровать все объекты Servicework, где требования «истинны», а затем проверить, все ли объекты Servicework имеют статус «Выполнено».
Но если serviceworkList пуст, то переменная validate равна false.
Я знаю спецификацию allMatch, что если список пуст, то возвращаемое значение равно true.
Любые предложения о том, как я мог бы перестроить поток, что если список не будет пустым, я получу false?
public class Service{
List<ServiceWork> serviceWorkList = new ArrayList<>();
boolean validate = serviceWorkList
.stream()
.filter(ServiceWork::isRequirement)
.allMatch(a -> a.getStatus() == Status.DONE);
}
class ServiceWork {
private Status status;
private boolean isRequirement;
public Status getStatus() {
return status;
}
public void setStatus(Status status) {
this.status = status;
}
public boolean isRequirement() {
return isRequirement;
}
public void setRequirement(boolean requirement) {
isRequirement = requirement;
}
}
enum Status {
DONE, NOT_DONE
}