2012-11-20 5 views
4

가능한 중복 :
Difference between these two conditions?비교 문자열 : string.equals ("")! 대 ","같음 (문자열)

내가 몇 가지 코드 정리를하고있는 중이 야 NetBeans가 변경 제안을했습니다.

if(!billAddress1.equals("")) ~ if (!"".equals(billAddress1)).

두 버전의 차이점과 제안 버전을 원 버전의 가독성보다 더 많이 사용하면 어떤 점이 이점이 있습니까? billAddress1null, "".equals(billAddress1) 않을 경우

+1

이 게시물을 참조하십시오 : - http://stackoverflow.com/questions/13084049/difference-between-these-two-conditions/13084072#13084072 –

+0

이 질문을 추가하십시오 : http://stackoverflow.com/questions/9888508/ string-equals-argument-ordering – hmjd

+0

글쎄, 나는이 질문에 대답하는 대답을 가지고있는 듯하다. 모든 분께 감사 드리며, 분이 끝나면 대답을 받아 들일 것입니다. –

답변

7

billAddress1.equals("")는 NullPointerException이 발생합니다.

3
// Could cause a NullPointerException if billAddress1 is null 
if(!billAddress1.equals("")) 

// Will not cause a NullPointerException if billAddress1 is null 
if (!"".equals(billAddress1)) 
3

!"".equals(billAddress1)은 절대로 NPE을 발생시키지 않으므로 그렇지 않은 경우 billAddress1 == null을 제거하여 더 간단한 구문을 허용합니다.

2

값이 널 (null)이면 Null 포인터 예외가 발생하지 않습니다.

1

첫 번째 오류는 NullPointerException을 유발할 수 있습니다.

2

다른 사람들이 지적한 것처럼 NPE에서 나를 구해줍니다. 그러나 그것이 null이되지 않을 것이라 확신한다면 문자열이 비어 있는지 확인하는 더 좋은 방법은 String.isEmpty() 메서드를 사용하는 것입니다. 이것이 코드가 시도하는 것입니다.