[JAVA]

NullPointerException

지기음 2022. 12. 22. 13:01

자바로 프로그램을 만들다 보면 NullPointerException을 보게 되는 경우가 있다.

나도 그중 하나이다....

보통 예외같은 경우는 자바 공식 문서에 잘 설명되어있다. 

https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/NullPointerException.html#%3Cinit%3E() 

 

NullPointerException (Java SE 11 & JDK 11 )

 

docs.oracle.com

5가지 경우가 있다. 

Thrown when an application attempts to use null in a case where an object is required. These include:

  • Calling the instance method of a null object.
  • Accessing or modifying the field of a null object.
  • Taking the length of null as if it were an array.
  • Accessing or modifying the slots of null as if it were an array.
  • Throwing null as if it were a Throwable value.

해석해보자면 

1. 널객체의 메소드를 사용

2. 널객체에 접근/수정

3. 널이 배열인것 처럼 길이를 가지는 경우

4. 널이 배열인거 처럼 액세스하거나 수정

5. 널 값을 던질 수 있는 것처럼 행함 

 

내가 오류가 났던 상황은 1번으로 추측한다. 

String.equals(a)를 쓰는데 있어 String 자리에 null 값이 될 수 도 있다는 사실을 간과하였다.

이후 a.equals(String)으로 바꾸니 오류는 사라졌다. 

 

NullpointerException을 피하기 위해서는 optional을 자주 사용하는 듯 보인다.

그러나 아직 optional을 자유자재로 쓰기에는 지식이 부족하다.

optional을 주말에 공부하도록 하자 .

'[JAVA]' 카테고리의 다른 글

Inheritance + @  (0) 2023.01.21
Abstraction + @ (추상화와 그 외의 중요한 것들)  (0) 2023.01.17
discord로 IntelliJ하는거 티내는 방법  (0) 2022.12.21
java char to int  (0) 2022.12.21
JAVA EOF (scanner + buffered reader)  (0) 2022.11.02