두 버전을 모두 보았으므로이 두 표현 사이에 실제 차이가 있습니까? 그것을 쓰는 일반적인 방법은 무엇입니까?
"hello".equals(myString)
myString.equals("hello")
편집 : 내 질문 의이 부분은 중복되지 않습니다.
"hello".equals(myString)
오류가 발생하지 않는 것이 좋은 이유는 무엇 입니까? 호출자가 널 문자열을 사용하도록하지 않겠습니까? 이 논리로 myString.equals("hello")
더 깨끗한 코드를 사용하지 않겠습니까?
가장 좋은 방법은 예외를 throw 할 수 없기 때문에 첫 번째 방법입니다.
두 번째 방법은이 발생 NullPointerException
하는 경우 myString
입니다 null
.
"hello".equals (myString)에서 오류가 발생하지 않는 것이 좋은 이유는 무엇입니까? 호출자가 널 문자열을 사용하도록하지 않겠습니까?
프로그래밍 오류를 가능한 한 빨리 감지하는 것이 좋은 것이기 때문에 때때로 예외가 좋은 것입니다. myString
아니어야 한다면 null
예외를 myString.equals("hello");
던지는 것에 의존하지 않고 명시 적으로 예외를 던질 것 입니다. 예를 들면
public void someMethod(String myString) {
if (myString == null)
throw new NullPointerException();
if ("hello".equals(myString))
// do something
}
이 코드 if (myString.equals("hello"))
는를 사용하는 것과 완전히 동일 하지만 의도는 더 명확하며 다른 프로그래머가 리터럴을 먼저 입력하지 않은 이유를 깨닫지 못하고 교체 할 가능성이 없습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다