Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2018, 21:05   #1
JavaDoc
Пользователь
 
Регистрация: 15.12.2018
Сообщений: 16
По умолчанию Помогите разобраться с 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, 21:11   #2
JavaDoc
Пользователь
 
Регистрация: 15.12.2018
Сообщений: 16
По умолчанию

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка 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 20:30
Помогите разобраться с С++ igroman Общие вопросы C/C++ 1 03.08.2008 23:15