Java에서 NPE(Null Pointer Exception) 문제는 객체가 초기화되지 않은 상태에서 해당 객체의 메서드나 필드에 접근할 때 발생한다. 특히, 초기화되지 않은 List 필드에 접근할 때 자주 발생한다. 이 블로그 포스트에서는 Java의 ArrayNPE 문제를 다루고, 이를 해결하는 방법을 제시한다.
public class Example {
private ArrayList<String> list;
public void addItem(String item) {
list.add(item); // 여기서 NPE 발생 가능
}
public static void main(String[] args) {
Example example = new Example();
example.addItem('Hello');
}
}
위 코드에서 ArrayList<String> list 필드는 선언되었지만 초기화되지 않았다. 따라서 addItem 메서드에서 list.add(item)을 호출할 때 NPE가 발생할 수 있다.
NPE 문제는 주로 객체가 초기화되지 않은 상태에서 해당 객체의 메서드나 필드에 접근할 때 발생한다. 위 예제에서는 list 필드가 초기화되지 않았기 때문에 list.add(item) 호출 시 NPE가 발생한다. 이를 해결하기 위해서는 list 필드를 초기화해야 한다.
Java의 ArrayNPE 문제는 초기화되지 않은 List 필드에 접근할 때 발생한다. 이를 해결하기 위해서는 List 필드를 ArrayList와 같은 List의 구현 클래스의 인스턴스로 초기화하면 된다.
import java.util.ArrayList;
public class Example {
private ArrayList<String> list = new ArrayList<>(); // 초기화
public void addItem(String item) {
list.add(item); // NPE 발생하지 않음
}
public static void main(String[] args) {
Example example = new Example();
example.addItem('Hello');
}
}
위 예제와 같이 new ArrayList<>();를 통해 List 필드를 초기화하면 ArrayNPE 문제를 예방할 수 있다. 초기화된 list 필드는 addItem 메서드에서 안전하게 접근할 수 있다.