-
requireNonNull() 메서드 관련 메모Dev. Diary/Memo 2023. 9. 22. 13:14
책에서
Object
클래스의requireNonNull()
메서드를 보게 되었다. 무엇을 하는 녀석인지 찾아보니null
을 체크하는 메서드라고 한다. 유용해보이는 메서드인데, 당장 자주 쓸 지 잘 모르겠는데 까먹기에는 뭔가 아쉬워서 적어놓으려고 한다. 기본적으로는 아래와 같이 짜여 있다.public static <T> T requireNonNull(T obj) { if (obj == null) throw new NullPointerException(); return obj; }
매개변수가
null
이면NullPointerException
을 던지고, 그렇지 않으면 주어진 매개변수를 그대로 반환한다. 내가 책에서 본 것은 아주 간단한 예시였지만, 잘만 쓰면 내가 만든 프로그램에서 어떤 부분에서 예외가 발생하는지 확인하는데 도움이 될 것 같다는 생각이 들었다. 특히, 주어진 자원의 유효성을 검사할 때,if
문을 드륵드륵 적으면서null
체크를 하거나,try-catch
구문으로 예외를 판별하곤 했었는데, 이 메서드를 사용하면 코드가 많이 간결해질 수 있을 것 같다.찾아보니 메시지를 매개변수로 받아서, 예외를 던질 때 메시지를 출력하도록 오버로딩된 메서드도 있었다.
Objects.requireNonNull(null, "Hi! I’m null!");
두 번째 매개변수로
Supplier
타입의 변수를 받는 것도 있는데, 이건 아직Supplier
에 대한 지식이 없어서 그런지 왜 만든 것인지 잘 모르겠다. 이것은Supplier
에 대해서 더 알아본 뒤에 왜 만든 것인지 생각해봐야겠다.'Dev. Diary > Memo' 카테고리의 다른 글
Comparable 인터페이스를 구현할 때 비교자(Comparator) 이용하기 (0) 2023.09.27 오토 박싱, 언박싱 조심! (0) 2023.09.20 객체의 일관성에 관한 메모 (0) 2023.09.19 정적 팩토리 메서드를 알아보다가 느낀 점 (0) 2023.09.17 입력을 받았을 때, 직접 input stream에서 데이터를 읽어오기 (0) 2023.08.28