<aside> 💡 ***이 장의 내용

null 참조의 문제점과 null 을 멀리해야 하는 이유 null 대신 Optional : null 로부터 안전한 도메인 모델 재구현하기 Optional 활용 : null 확인 코드 제거하기 Optional 에 저장된 값을 확인하는 방법 값이 없을 수도 있는 상황을 고려하는 프로그래밍***

</aside>

11.1 값이 없는 상황을 어떻게 처리할까?


다음처럼 자동차와 자동차 보험을 갖고 있는 사람 객체를 중첩 구조로 구현했다고 하자.

public class Person {
    private Car car;
    public Car getCar() { return car; }
}

public class Car {
    private Insurance insurance;
    public Insurance getInsurance() { return insurance; }
}

public class Insurance {
    private String name;
    public String getName() { return name; }
}
public String getCarInsuranceName(Person person) {
    return person.getCar().getInsurance().getName();
}

11.1.1 보수적인 자세로 NullPointerException 줄이기


예기치 않은 NullPointerException 을 피하려면?

public String getCarInsuranceName(Person person) {
    if (person != null) {
        Car car = person.getCar();
        if (car != null) {
            Insurance insurance = car.getInsurance();
            if (insurance != null) {
                  return insurance.getName();
            }
        }
    }
    return "Unknown";
}