我已经编写了代码,但事实是,我认为可以有更好的方法来编写以下代码,
这仅在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");
}
Run Code Online (Sandbox Code Playgroud)
我希望将以上内容写成一行
Era*_*ran 27
您可以使用orElseThrow,如果存在则返回值,否则返回指定的异常:
private User getUser(String userId) {
return userDAO.getUserById(userId)
.orElseThrow(() -> new UserDefinedException("User not present"));
}
Run Code Online (Sandbox Code Playgroud)