배경

  • map.get(null)을 호출하면 NPE가 발생할 것으로 예측했는데 발생하지 않았다.
  • NPE가 발생하지 않는 이유를 이해한다.

Map 인터페이스

  • get() 메서드 호출시 파라미터가 null이면 NPE가 발생한다고 명시되어 있다.

HashMap

  • 하지만 HashMapMap 인터페이스의 구현체임에도 key가 null인 경우를 허용하고 있어, get() 메서드 호출 시 null을 넘길 수 있다.

TreeMap

  • Map의 또 다른 구현체인 TreeMap의 경우는 null을 넘기면 NPE가 발생한다.

참고 자료