개인 과제를 진행하며 사용은 했지만 잘 모르던 개념들에 대해 찾아보고 정리하고 있다.
모르는게 너무 많아...😂
자바로 프로그래밍 하다보면 정의되지 않은 객체에 대해 null값을 고려하게 되는 경우가 발생한다.
안정적인 실행을 위해서는 null값을 처리해 NullPointerException가 발생하지 않게 체크해야 한다.
단순한 코드라면 짧은 로직으로 처리할 수 있지만, 스케일이 커질 수록 고려해야할 변수가 많아지고, 그만큼 null 체크 로직이 길어지게 된다.(if, else, ifelse 등...)
이러한 상황을 위해 자바에서는 Optional<T>
클래스를 도입하여 NullPointerException을 방지할 수 있도록 도와준다.
Optional은 null이 올 수 있는 값을 감싸는 Wrapper 클래스로, NullPointerException이 발생하지 않도록 도와준다.
Optional 클래스는 아래 예제처럼 value에 값을 저장하기 때문에 null이더라도 바로 NullPointerException이 발생하지 않으며, 각종 메서드를 제공한다.
public final class Optional<T> {
private final T value;
}
Optional API의 단말 연산에는 orElse와 orElseGet메서드가 있다.
💡Optional 에서 메소드를 사용할 때 주의사항
default Value를 만드는 방법이 함수이면 -> orElseGet
default Value가 그냥 정의되는 값이면 -> orElse