티스토리 뷰

String st = (String) pageContext.getAttribute("korea");

이렇게 st에 데이터를 넣어주는데 이게 null인 경우가 있습니다.

그래서 
if(!st.equals(null) || !st.equals(""))
이렇게 처리해서 null이 아닌 경우에만 메소드가 실행되도록 했습니다.

null이 아닌 경우엔 너무도 잘 되는데 null인 경우에는
실행을 하지는 않지만 콘솔에 익셉션이 찍히더라고요...

도대체 왜 그런건가요?

변수.euqlas(비교문자열) 이렇게 했을 때 익셉션이 날 수 있다는걸 알고서
String check = null;
if(!check.equals(st)) 이렇게 해봐도 익셉션이 날겁니다.
처음시작하는분들이 가장 먼저 격는게 아닐까 싶네요.

답변
check == null 이렇게 비교하시면 됩니다.
생성되지 않은 인스턴스에 대해서 메소드를 호출할 경우 null.equals()를 하신 것과 같습니다.
그러므로
str.equals("문장")라는 구문이 있을경우
"문장".equals(str)로 쓰는게 맞습니다.
null은 객체가 아니라서 equals 메소드가 없네요
댓글
댓글쓰기 폼
광고위치
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
46,834
Today
61
Yesterday
374
링크
«   2018/06   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함