ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [오류] 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 이 나오면 되는 것 아닌가 하는 생각때문에 발생한 오류였다.

     

    ㅇㅇㅇㅁㄴㅇ

Designed by Tistory.