TIL

Objects.requireNonNull 사용 이유

하얀잔디 2022. 11. 16. 17:51

NPE를 예방하기 위해 있는 건 알겠다.

 

근데 왜 저런 함수를 쓸까?

 

-> 빠른 처리를 위해서.

 

아래 코드를 보자.

 

void method1(String text) {
    // ...
    method2(text);
}

void method2(String text) {
    // ...
    method3(text);
}

void method3(String text) {
    // ...
    System.out.println(text.toUpperCase());
}

위와 같은상황에서, text를 null로 주고 값이 들어간다면,

 

String text = null;
method1(text);

// java.lang.NullPointerException
//     at NullTest.method3(NullTest.java:18)
//     at NullTest.method2(NullTest.java:13)
//     at NullTest.method1(NullTest.java:8)
//     ...

 

와 같이, method1을 떠나 method3까지 도달한 뒤에야 NPE가 발생하는걸 콜스택을 통해 알 수 있다.

 

조기에 이상감지를 할 수 있다. + 명시성이 좋아진다!!

'TIL' 카테고리의 다른 글

redis란  (0) 2022.11.21
Service에서 Service를 의존해도 될까?  (0) 2022.11.17
디자인 패턴이란  (0) 2022.11.15
Scheduler vs Spring batch vs DB Procedure  (0) 2022.11.08
instanceof  (0) 2022.11.08