我正在尝试从Java 8中的Optional API的Optional ifPresent()方法抛出异常。我正在检查是否存在对象,如果存在,则检查它是否包含特定值。如果是,则抛出异常
这是我的代码:
Optional<User> dbUser = userRepository.findByEmail(email);
logger.info("Fetched user : " + dbUser + " by " + email);
logger.info("Fetched user status : " + dbUser.get().getStatus());
if (dbUser.isPresent()) {
if (dbUser.get().getStatus().equals(Status.PENDING)) {
throw new UserException("pending", email);
}
}
上面的代码可以正常工作,但是这种方法可以吗?
if (dbUser.isPresent() && dbUser.get().getStatus() != null ) {
if (dbUser.get().getStatus().equals(Status.PENDING)) {
throw new UserException("pending", email);
}
}