본문 바로가기

트러블슈팅

dto 의 hashmap 필드 nullpointexception 에러

이렇게 했더니, 

addData를 해도 값이 세팅이 안됨.

 

 

--> 이 클래스 에서는, allargsconstructor를 통해 자동으로 모든 필드의 생성자를 자동으로 생성함.

이 생성자는 code, message, data 세 개의 매개변수를 받는다.

그리고 data필드를 선언할 때 기본값으로 빈 hashmap을 설정 했다. 이렇게 함으로써 객체를 생성할 때, 

data필드가 항상 null이 아닌 빈 HashMap으로 초기화 된다.

이것이 클래스의 생성자에서 data 필드를 "기본값으로 설정"했다는 의미입니다.

 

그런데, 객체를 생성할때, 첫번째 사진처럼 data필드를 아예null로 설정해버렸기 때문에

nullpointerexception에러가 발생하는 것이다. 

 

해결방법 두가지.

 

또는,

 

 

1번 방법은, data필드의 메모리할당이 두번이나 되기 때문에 데이터 낭비.

이미 호출하는 순간부터 HashMap이 설정되는데, 거기에 또 해시맵 설정했기 때문.

 

 

따라서 2번 방법이 적절하다. 

'트러블슈팅' 카테고리의 다른 글

local variable ~~~ is reundant.  (0) 2024.04.11