Как лучше использовать Optional в условиях? - PullRequest
10 голосов
/ 20 июня 2019

Я уже написал код, но я чувствую, что может быть лучший способ написать код ниже,

Это должно быть возможно только с Java 8

private User getUser(String userId) {
    Optional<User> optionalUser = userDAO.getUserById(userId);
    if(optionalUser.isPresent())
        return optionalUser.get();
    throw new UserDefinedException("User not present");
}

Я ожидаю написать выше в одну строку

1 Ответ

27 голосов
/ 20 июня 2019

Вы можете использовать orElseThrow, который будет возвращать значение, если оно присутствует, или выдавать указанное исключение, если нет:

private User getUser(String userId) {
    return userDAO.getUserById(userId)
                  .orElseThrow(() -> new UserDefinedException("User not present"));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...