English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

왜 Java에서 null을 표시할 수 있고, 그렇다면NullPointerException으로 변환할 필요가 있나요?

Java에서는 각 타입마다 기본 값이 있습니다. 클래스의 인스턴스 변수를 초기화하지 않으면 Java 컴파일러가 이 값을 대신하여 초기화합니다. Null은 객체 타입의 기본 값이며, 메서드 내의 객체에도 null을 직접 할당할 수 있습니다.

Object obj = null;

null 값을 가진 객체를 사용하거나 (null 값을 대신하여 객체를 사용하면) NullPointerException이 발생합니다.

예제

public class Demo {
   String name = "Krishna";
   int age = 25;
   public static void main(String args[]) {
      Demo obj = null;
      System.out.println(obj.age);
      System.out.println(obj.name);
   }
}

런타임 예외

Exception in thread "main" java.lang.NullPointerException
   at july_set3.Demo.main(Demo.java:11)

NullPointerException 발생

Java에서 throw 키워드를 사용하여 NullPointerException을 발생시킬 수 있습니다.

예제

public class ExceptionExample {
   public static void main(String[] args) {
      System.out.println("Hello");
      NullPointerException nullPointer = new NullPointerException();
      throw nullPointer;
   }
}

출력 결과

Hello
Exception in thread "main" java.lang.NullPointerException
   at MyPackage.ExceptionExample.main(ExceptionExample.java:6

null 값을 던집니다.

Java 문서에 따르면, NullPointerException을 시도하면-

  • null 객체를 사용하여 a 메서드(인스턴스)를 호출

  • null 값을 가진(객체) 필드에 접근, 수정, 출력

  • 탐색(출력) 시도/문장에서 null 값을 사용하여 길이를 확인합니다.

  • null 값을 던집니다.

  • null 값을 가진 요소에 접근이나 수정/슬롯.

이미지를 참조하면, null 값을 투사하면 null 포인터 예외가 발생합니다. 이는 업그레이드가 아닙니다.

예제

public class Demo {
   public static void main(String args[]) {
      throw null;
   }
}

런타임 예외

Exception in thread "main" java.lang.NullPointerException
   at july_set3.Demo.main(Demo.java:5)
추천 합니다