2011-05-03 2 views
0

난 정말 다음 코드 조각에 의해 의아해 해요 흐름 :이상한 프로그램은

1) if (contentEncodingValue == "") 
{ 
3) contentText = this.GetResponseContentText(inputStream, charset); 
} 
2) else if (contentEncodingValue == "gzip") 
{ 
    contentText = this.GetResponseContentText_GZip(inputStream, charset);   
} 

4) return contentText; 

그리고 심지어 : 나는 코드의 라인을 통해 단계 때

// Get the content text 
String contentText = null; 
Header contentEncodingHeader = m_httpEntity.getContentEncoding(); 
final String contentEncodingValue = contentEncodingHeader != null ? contentEncodingHeader.getValue() : ""; // In my example, this is set to "gzip" 

if (contentEncodingValue == "") 
{ 
    contentText = this.GetResponseContentText(inputStream, charset); 
} 
else if (contentEncodingValue == "gzip") 
{ 
    contentText = this.GetResponseContentText_GZip(inputStream, charset);   
} 

return contentText; 

, 그것은 다음과 같은 순서로 실행 낯선 사람은 여전히 ​​GetResponseContentText 기능을 입력하지 않습니다. 나는 정말로 혼란 스럽다. 누구든지 이것에 대해 어떤 생각을 밝힐 수 있습니까?

또한 if 문을 주석 처리하면 제대로 작동합니다 (GetResponseContentText_GZip 함수에 들어갑니다).

문자열 비교에서

답변

2

, 당신은 대신 equals를 사용할 것 ==

if (contentEncodingValue.equals("")) { 
... 
} 
else if (contentEncodingValue.equals("gzip")) { 
... 
}