문자열에 의미있는 값이있는 경우에만 일부 작업을 수행하려고합니다. 그래서 나는 이것을 시도했다.
if (!myString.equals("")) {
doSomething
}
이
if (!myString.equals(null)) {
doSomething
}
이
if ( (!myString.equals("")) && (!myString.equals(null))) {
doSomething
}
이
if ( (!myString.equals("")) && (myString!=null)) {
doSomething
}
이
if ( myString.length()>0) {
doSomething
}
그리고 모든 경우에 내 프로그램 doSomething
은 내 문자열이 비어 있다는 사실에도 불구하고. 와 같습니다 null
. 그래서 무엇이 잘못 되었나요?
추가 :
문제의 원인을 찾았습니다. 변수는 문자열로 선언되었으며 결과적 null
으로이 변수에 지정된 변수는 "null"
! 그래서 if (!myString.equals("null"))
작동합니다.
System.out.println(myString)
if-block 직전 에 당신 에게 무엇이 있는지 볼 수 있도록 제안 하시겠습니까?
null
있습니까?
null
이 변수에 할당 된 것은 다음과 같이 바뀌 었습니다 "null"
. 이것은 끔찍한 생각입니다. 가능하면이 디자인을 변경하십시오.
null
메소드가 없으므로도 없습니다equals()
. 경우myString
했다null
, 당신은 어떻게 이제까지의 메소드를 호출 할 것인가? :)