У меня есть метод, который найдет оператора и вернет новую позицию.Возвращаемое значение по умолчанию в методе, если нет совпадений
public Integer findToken(Character operator) {
try {
return tokenList.stream()
.filter(x -> {
return x.position >= startPosition &&
x.position <= endPosition &&
x.operator == operator;
})
.findFirst().get()
.position;
} catch (Exception ex) {
return null;
}
}
Но если совпадений нет, я хочу сохранить прежнее значение.
startPosition = findToken(Operator.value);
Как вернуть прежнее значение? я попытался дать новый параметр со значением в методе и передать его в исключение, но тогда код выглядит уродливым. Есть ли способ лучше ?
Нельзя использовать параметр Optional.get(), если вы не можете доказать, что существует совпадение (например, isPresent() уже вернул true). Вы должны использовать один из безопасных методов: orElse, orElseThrow, ifPresent и т. Д. Здесь вы можете просто отключить isPresent. –