Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Java > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 26.12.2018, 22:05   #1
JavaDoc
Пользователь
 
Регистрация: 15.12.2018
Сообщений: 12
Репутация: 10
По умолчанию Помогите разобраться с Optional

Код:

public <R> Optional<R> db(String sql, List<Object> param, FunEx<PreparedStatement, R> fun) {
        Optional<R> rsl = Optional.empty();
        try (var conn = source.getConnection();
             var pr = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
            this.forIdex(param, (index, value) -> dispat.get(value.getClass()).accept(index + 1, pr, value));
            rsl.of(fun.apply(pr));
            System.out.println(fun.apply(pr));
            System.out.println(rsl.get());
        } catch (Exception e) {
            LOGGER.error(e.getMessage(), e);
        }
        return rsl;
    }

public Users findById(Users users) {
        return this.db(
                "select * from users where id = ?", Arrays.asList(Integer.valueOf(users.getId())),
                ps -> {
                    Users res = new Users("`name", "login");
                    return res;
                }
        ).orElse(new Users());

    }

т.е. я пытаюсь в этой строке rsl.of(fun.apply(pr)); получить пользователя
и да, чтобы проверить получаю ли я в действительности пользователя я добавляю строку вывода в консоль System.out.println(fun.apply(pr));
консоль мне выводит Users{id=null createDate=2018-12-27T01:00:02.183189100, name=`name , login=login} типо всё норм из метода приходит объект но когда я пытаюсь получить объект из оптионал в строке
System.out.println(rsl.get());
я получаю java.util.NoSuchElementException: No value presen будто там пусто вопрос почему?
JavaDoc вне форума   Ответить с цитированием
Старый 26.12.2018, 22:11   #2
JavaDoc
Пользователь
 
Регистрация: 15.12.2018
Сообщений: 12
Репутация: 10
По умолчанию

дебагером проходил метод fun.apply(pr) возвращает обект users но почемуто не добавляет его в оптионал rsl.of(fun.apply(pr));
JavaDoc вне форума   Ответить с цитированием
Старый 26.12.2018, 22:20   #3
JavaDoc
Пользователь
 
Регистрация: 15.12.2018
Сообщений: 12
Репутация: 10
По умолчанию

тему закрыть, глаза замылились косяк нашёнл
JavaDoc вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка argument not optional Vlad-y Microsoft Office Excel 2 24.04.2014 12:35
Помогите разобраться. Serror Общие вопросы C/C++ 1 07.10.2009 16:08
Помогите разобраться. littlecoder Общие вопросы Delphi 5 21.12.2008 21:30
Помогите разобраться с С++ igroman Общие вопросы C/C++ 1 03.08.2008 23:15


18:25.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru