2011-05-03 74 views
0

我真的通过下面的一段代码不解:奇怪的程序流程

// 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; 

当我跨过几行代码,它执行下面的命令:

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

4) return contentText; 

即使陌生人仍然是,它甚至没有进入GetResponseContentText功能。我真的很困惑。任何人都可以对此有所了解吗?另外,如果我注释掉if语句,它可以正常工作(进入GetResponseContentText_GZip函数)。

回答

2

从字符串比较,你会想用equals,而不是==

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