Есть вот такой код
Integer page = Optional.ofNullable(request.queryParams("page")).map(p -> {
try {
return Integer.parseInt(p);
} catch (NumberFormatException e) {
return null;
}
}).orElse(null);
как избавиться от try catch внутри него, но при этом, что бы когда параметр page будет строкой, не вылилась ошибка?
Попробуйте так:
Integer page = Optional.of("abc").filter(e -> e.chars().allMatch(Character::isDigit)).map(Integer::parseInt).orElse(null);
Вы можете удалить все символы кроме цифр в строке и если результат не пустой, то можете передать его функции parseInt, но лучше valueOf, так как он работает с пулом интов
Сборка персонального компьютера от Artline: умный выбор для современных пользователей