我已经编写了代码,但事实是,我觉得有更好的方法可以编写以下代码,
这只能在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");
}
我希望将以上内容写成一行
答案 0 :(得分:27)
您可以使用orElseThrow
,如果存在则返回值,否则返回指定的异常:
private User getUser(String userId) {
return userDAO.getUserById(userId)
.orElseThrow(() -> new UserDefinedException("User not present"));
}