Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查对象是否为空时出错_Java_Eclipse_Json_Httpresponse_Apache Httpclient 4.x - Fatal编程技术网

Java 检查对象是否为空时出错

Java 检查对象是否为空时出错,java,eclipse,json,httpresponse,apache-httpclient-4.x,Java,Eclipse,Json,Httpresponse,Apache Httpclient 4.x,我得到了一个HttpResponse,它得到了一个json响应 现在,如果json响应包含数据,则一切正常,但只要json为null,我的应用程序就会崩溃 我一直在尝试遵循代码,但没有成功 (sb=json响应) 我尝试将结果11与: null, "", "null", JSONObject.NULL 它总是返回“我不是空的” 而日志显示result11=null 任何帮助都将不胜感激。提前谢谢 编辑: @markbyers的解决方案 test.toString().trim().equals

我得到了一个HttpResponse,它得到了一个json响应

现在,如果json响应包含数据,则一切正常,但只要json为null,我的应用程序就会崩溃

我一直在尝试遵循代码,但没有成功

(sb=json响应)

我尝试将结果11与:

null, "", "null", JSONObject.NULL
它总是返回“我不是空的”

而日志显示result11=null

任何帮助都将不胜感激。提前谢谢

编辑:

@markbyers的解决方案

test.toString().trim().equals("null") 

如果与空指针比较得到空结果,则结果为“I AM NULL”

result11==NULL
您没有
NULL
。您有一个
StringBuilder
,当转换为
字符串时,它包含值
“null”

要比较字符串,请不要使用
=
运算符。相反,您应该转换为
字符串
,并使用
equals
方法

StringBuilder stringBuilder = (StringBuilder)result11;
String trimmed = stringBuilder.toString().trim();
if (trimmed.equals("null")) { ... }
=
运算符比较引用,仅当操作数是对同一对象的引用(或两个空引用)时才返回true。
equals
方法比较这些值

相关的


什么是
result11
的运行时类型?尝试打印
result11.getClass()
.StringBulder类的结果,也尝试将对象强制转换为字符串(string)result11,但结果仍然为NOTNULL。还检查了它读取的网页,它熟练地说它是空的,logcat也是。我添加了一个显式强制转换。如果类型错误,您应该会得到一个异常。请检查我的编辑我将其更改为什么。它仍然会导致I'm not null=\EDIT:我还将stringbuilder添加到日志中,并导致打印null。@Deejdd。。字符串中似乎有一些无法打印的字符或前导或尾随空格。尝试使用-
test.toString().trim().equals(“null”)
。这将仅在存在空白的情况下删除空白。是;),标记为答案并将解决方案添加到主帖子。
test.toString().trim().equals("null") 
StringBuilder stringBuilder = (StringBuilder)result11;
String trimmed = stringBuilder.toString().trim();
if (trimmed.equals("null")) { ... }