Java 8 ifPresent()
에서 Optional
API 의 방법 을 이해하려고합니다 .
나는 간단한 논리가 있습니다.
Optional<User> user=...
user.ifPresent(doSomethingWithUser(user.get()));
그러나 이로 인해 컴파일 오류가 발생합니다.
ifPresent(java.util.functionError:(186, 74) java: 'void' type not allowed here)
물론 다음과 같이 할 수 있습니다.
if(user.isPresent())
{
doSomethingWithUser(user.get());
}
그러나 이것은 정확히 어수선한 null
수표 와 같습니다 .
코드를 다음과 같이 변경하면 :
user.ifPresent(new Consumer<User>() {
@Override public void accept(User user) {
doSomethingWithUser(user.get());
}
});
코드가 더러워 져서 예전 null
수표 로 돌아 가야한다고 생각하게합니다 .
어떤 아이디어?