在条件下使用Optional的更好方法是什么?

时间:2019-06-20 08:46:05

标签: java java-8

我已经编写了代码,但事实是,我觉得有更好的方法可以编写以下代码,

这只能在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 个答案:

答案 0 :(得分:27)

您可以使用orElseThrow,如果存在则返回值,否则返回指定的异常:

private User getUser(String userId) {
    return userDAO.getUserById(userId)
                  .orElseThrow(() -> new UserDefinedException("User not present"));
}