Java에서 NPE(NullPointerException) 문제는 주로 초기화되지 않은 필드를 접근할 때 발생한다. 특히, List와 같은 컬렉션 필드를 초기화하지 않고 접근할 경우 NPE가 발생할 수 있다.
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 list' 필드는 선언되었지만 초기화되지 않았다. 이로 인해 addItem 메서드에서 NPE가 발생할 수 있다.
NPE 문제는 주로 초기화되지 않은 필드를 접근할 때 발생한다. 위 코드에서는 'list' 필드가 초기화되지 않았기 때문에 addItem 메서드에서 list.add(item) 호출 시 NPE가 발생한다. 이 문제를 해결하기 위해서는 'list' 필드를 초기화해야 한다. 디버깅 툴을 활용하여 필드가 초기화되지 않았음을 확인할 수 있다.
'list' 필드를 초기화하여 NPE 문제를 해결할 수 있다. 이를 위해 'list' 필드를 ArrayList의 인스턴스로 초기화하면 된다.
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');
}
}
위 예제 코드에서 보듯이, 'list' 필드를 new ArrayList<>();로 초기화함으로써 NPE 문제를 방지할 수 있다. 초기화된 필드를 사용하면 NPE가 발생하지 않는다.