java - 奇怪的程序流程

标签 java android program-flow

我对下面的代码感到非常困惑:

// 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 函数)。

最佳答案

在字符串比较中,您需要使用 equals 而不是 ==

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

关于java - 奇怪的程序流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5875920/

相关文章:

java - 将 Json 转换为特定的类

java - 如何从sqlite中随机访问问题?

javascript - javascript 事件处理发生在程序流内部还是外部?

java - 在 Java 中按键时返回/停止执行函数

java - Java 独立项目 VSCode 中显示无法识别的选项 : -ea, --enable-preview 错误

java - 反序列化同一文件中的多个对象(java)

java - 哪些 Web 框架可以在 Google 应用引擎上成功使用? Struts/Spring 怎么样?

java - scala.collection.Seq 不适用于 Java

java - Android - 如何按日期对 arrayList 进行排序?

java - Java try-catch-finally 中的奇怪错误