Работа с логическим типом возврата (легко вывести Predicate
с), один из способов сделать это - использовать Optional.filter
:
boolean isValid(Optional<File> optFile) {
return optFile.filter(this::isZeroLine).isPresent();
}
Но затем использовать *Аргументы 1008 * s кажутся плохой практикой.Как также предлагается в комментариях Карлоса, другой способ его реализации мог бы быть:
boolean isValid(File optFile) {
return Optional.ofNullable(optFile).map(this::isZeroLine).orElse(false);
}
С другой стороны, ifPresentOrElse
- это конструкция, которая будет использоваться при выполнении некоторых действий, соответствующихналичие значения Optional
что-то вроде:
optFile.ifPresentOrElse(this::doWork, this::doNothing)
, где могут быть соответствующие действия -
private void doWork(File f){
// do some work with the file
}
private void doNothing() {
// do some other actions
}