NullPointerException에러 - 컬럼의 번호를 잘 확인하자

yuns·2024년 10월 13일

80: 	<% for(Alarm alarm : alarmList) { %>
81: 		<div class="alarm_list">
82:             <img src="images/KakaoTalk_20240503_135834006_12.jpg">
83:         <% if (alarm.getAlarmType().equals("comment")) { %>
84:             <p class="alarm_comment"><span><%= alarm.getSenderID() %></span>님이 댓글을 남겼습니다.</p>
85:         <% } else if (alarm.getAlarmType().equals("like")) { %>
86:         	<p class="alarm_like"><span><%= alarm.getSenderID() %></span>님이 좋아요를 눌렀습니다.</p>


Stacktrace:]() 발생시켰습니다.
java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because the return value of "alarm.Alarm.getAlarmType()" is null

알림 기능을 만들다가, 알림 테이블의 컬럼을 하나 추가한 뒤, 댓글을 남기고 알림 페이지를 열었을 때 나온 오류

getter에도 문제 없고, db에도 값이 잘 들어갔는데 뭐가 문제였냐면

알림을 가져오는 메서드에 사용한 생성자에서 get할 컬럼의 번호를 변경하지 않았기 때문이었다

변경한 테이블에서는 이런 상태였는데, 2, 3, 4로 되어있었기 때문에 alarmType으로 4번째인 senderID의 null 값을 읽어온 것이다

생성자와 컬럼의 번호에 맞게 수정한다

0개의 댓글