Using Optional in Java the right way
Medium
당신이 얼마나 오래 프로그래밍을 했든지, NullPointerException(이하 NPE)은 가장 답답한 문제 중 하나입니다.
Optional 클래스는 NPE 문제를 해결하기 위해 자바 8부터 도입되었습니다.
java.util.Optional<T> 클래스의 목적은 null일 수 있는 T 타입의 개체에 대한 안전한 대안을 제공하는 것입니다. optional 객체를 만들 수 있는 방법을 살펴봅시다.
📌 Empty Optional
Optional.empty()를 사용하면 비어 있는 optional 객체를 생성할 수 있습니다.
📌 Nullable Optional
Optional.ofNullable() 메소드를 사용하여 nullable optional 객체를 만들 수 있습니다. 이러한 객체는 null이거나 null 값을 가질 수 있습니다.
📌 Non-Nullable Optional
Optional.of() 메소드를 사용하여 null이 아닌 optional 객체를 만들 수 있습니다.
Optional 클래스에 존재하는 get() 메소드는 값이 존재한다면 그 값을 가져오거나 NoSuchElementException 예외를 던집니다.
대신에 isPresent() 메소드를 사용하여 값이 존재하는지 여부에 대한 boolean 값을 반환하는 두 번째 방법을 사용할 수 있습니다. 그러나 이 방법은, !=null을 사용하는 것과 별반 다르지 않아 보입니다.
```
if(optionalWallet.isPresent()){
savings.add(optionalWallet.get().getMoney());
}
```
코드를 더 간결하게 만들기 위해, ifPresent() 메소드를 사용할 수도 있습니다.
```
optionalWallet.ifPresent(wallet -> savings.add(wallet.getMoney()));
```
값이 비어있을 때 기본값을 가져오는 시나리오가 있을 수 있습니다. orElse() 메소드를 사용하여 옵션이 null일 때 대체 값을 생성할 수 있습니다. 또는 orElseGet() 메소드를 사용하여 기본값을 계산할 수도 있습니다.
```
Wallet wallet = optionalWallet.orElse(new Wallet(0));
```
지금까지 자바에서 Optional을 사용하는 몇 가지 좋은 방법이었습니다.
다음 내용이 궁금하다면?
이미 회원이신가요?
2023년 10월 19일 오전 11:54
1. 과거에는 해결해야 할 문제가 해결책의 양을 크게 웃돌았습니다.
지
... 더 보기