public method가 아닌 곳에는 assert를 사용하여 null을 방어할 수 있습니다.
또한 메소드의 인자를 받을 때 Objects.requireNonNull()을 사용하여 방어할 수 있습니다.
그리고 Optional을 사용해 리턴 타입에서 null을 반환하지 않도록 방어할 수 있습니다.
마지막으로 사전 조건과 사후 조건을 명확히 하여 계약에 의한 설계를 실천해야 합니다.
'Back-end > Java' 카테고리의 다른 글
[Java] Checked Exception 과Unchecked Exception (0) | 2022.03.07 |
---|---|
[Java] equals() 와 hashCode() (0) | 2022.03.07 |
[Java] Mutable 객체와 Immutable 객체의 차이점 (0) | 2021.11.21 |
[Java] 직렬화와 역직렬화 (0) | 2021.11.21 |
[Java] 강한 결합과 느슨한 결합 (0) | 2021.11.21 |