-
[오류] String.equals()메서드의 Null카테고리 없음 2024. 1. 10. 16:22
try {
switch (uri) {
//공지 리스트를 보기위한 DB와 페이지 처리
case "/notice/list.do": {
PageObject pageObject = PageObject.getInstance(request);
String period = request.getParameter("period");
if(period != null )pageObject.setPeriod(period);
LoginVO loginVO = (LoginVO)request.getSession().getAttribute("login");
//관리자 권한 체크 - period가 all, res, old는 관리자만 볼 수 있다.
long gradeNo = 0;
if(loginVO != null) gradeNo = loginVO.getGradeNo();
if(gradeNo != 9 && period!=null && !period.equals("pre")) {
//관리자 권한 체크
return "error/authError";
}
Object result = Execute.service(Init.serviceMap.get(uri), pageObject);
request.setAttribute("list", result);
request.setAttribute("pageObject", pageObject);
jsp = "notice/list";
break;
}
period != null 조건을 뺀 뒤에 if(gradeNo != 9 && period!=null && !period.equals("pre")
위 코드를 실행하면 NullPointerException 오류가 발생하는데,
String.equals("문자열");메서드를 실행할 때에는, !느낌표를 붙여 "특정 문자열이 아니다" 비교를 할때에도 String, 여기선 period, 가 null이어선 안된다.
사실 논리적으로 생각해보면 null 인 문자열을 무언가와 비교할 수 없다는 것이 옳다고 느껴지는데, 처음엔 period가 null이면 equals도 null 이 나오면 되는 것 아닌가 하는 생각때문에 발생한 오류였다.
ㅇㅇㅇㅁㄴㅇ