Странный ход программы - PullRequest
0 голосов
/ 04 мая 2011

Я действительно озадачен следующим фрагментом кода:

// 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).

1 Ответ

2 голосов
/ 04 мая 2011

Из сравнения строк вы можете использовать equals вместо ==

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