Заменить проверку на null, на использование Optional

276
23 ноября 2017, 03:31

Есть такой кусок кода

Integer page;
if (request.queryParams("size") != null) {
    page = Integer.parseInt(Optional.of(request.queryParams("size")).orElse(null));
} else {
    page = null;
}
Integer limit;
if (request.queryParams("limit") != null) {
    limit = Integer.parseInt(Optional.of(request.queryParams("limit")).orElse(null));
} else {
    limit = null;
}

Как его изменить, что бы убрать эти проверки на null, с помощью Optional? Если пишу так, то не работает, все равно получается NullPointerException, если нет "size" или "limit"

Integer page = Integer.parseInt(Optional.of(request.queryParams("size")).orElse(null));
Integer limit = Integer.parseInt(Optional.of(request.queryParams("limit")).orElse(null));
Answer 1
page = Optinal
         .ofNullable(request.queryParams("size"))
         .filter(v -> v.matches("\\d+"))
         .map(Integer::parseInt)
         .orElse(1);
READ ALSO
Вставить значение в xml-содержимое

Вставить значение в xml-содержимое

В спринг-бут проекте в папке resources есть шаблон xmlМеняется в нем только одно значение

260
Как использовать bottom navigation view в API 17-19?

Как использовать bottom navigation view в API 17-19?

Можно ли использовать например bottom navigation view в android 42 если она вроде как предназначено для android 6

197
Получение данных с сайта и отображение их из БД

Получение данных с сайта и отображение их из БД

Есть Json файл, через Retrofit получаю из него данные и вывожу в RecyclerViewКак я выяснил сразу данные обычно не выводят, а сначала записывают в БД и уже...

241