Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.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
与null比较,不适用于java_Java_Android_Sqlite - Fatal编程技术网

与null比较,不适用于java

与null比较,不适用于java,java,android,sqlite,Java,Android,Sqlite,我一直试图在if条件下与null进行比较,但它不起作用,总是在Else中进行比较。代码如下: String authEmail = cursor.getString(cursor.getColumnIndexOrThrow("AUTHOR_EMAIL")); Log.i(gtag, "author email => " + authEmail); if (authEmail == null ) { Log.i(gtag, "in author check - IF

我一直试图在if条件下与
null
进行比较,但它不起作用,总是在Else中进行比较。代码如下:

String authEmail = cursor.getString(cursor.getColumnIndexOrThrow("AUTHOR_EMAIL"));
Log.i(gtag, "author email => " + authEmail);
    if (authEmail == null ) {
        Log.i(gtag, "in author check - IF NULL");
     } else {
            Log.i(gtag, "in author check - ELSE ");                 
     }
这里的
cursor
是查询SQLite数据库的结果,
AUTHOR\u EMAIL
是列的名称。Logcat将作者的电子邮件显示为空,但它仍在其他位置。以下是日志:

06-24 15:30:55.307: I/GCA-Abs-Con(1282): author email => foo@bar.de
06-24 15:30:55.307: I/GCA-Abs-Con(1282): in author check - ELSE 
06-24 15:30:55.357: I/GCA-Abs-Con(1282): author email => null
06-24 15:30:55.357: I/GCA-Abs-Con(1282): in author check - ELSE 
logcat的第三行显示
authorEmail
null
,但它仍在
else

我也尝试了
authEmail.equals(null)
,但也没有成功。

如何修改if条件以完全检查null?
提前谢谢。

试试这个

  if (authEmail.equals("null")) {
而不是

  if (authEmail == null ) {
用于字符串比较的
.equals()
如下操作:

if (authEmail == null || authEmail.equals("null")) {
    ...
}

首先检查变量是否为null。如果不是,则检查字符串是否为文本
null
。当然,最好跟踪字符串为什么会包含看似无意的文本
null

要检查数据库字段是否具有SQL null值,请使用光标的方法:

用这个

if (authEmail == null || authEmail.equalsIgnoreCase("null")) {
  // handle null case
} else {
  // handle other case
}

如果(authEmail.equals(null)),请尝试;{}authEmail是一个字符串“null”而不是null ObjectNo,您不能使用
equals
进行null检查。也尝试了equals,但不起作用authEmail似乎是字符串“null”,而不是值null。正如下面的答案所示,做一个平等的回答。我建议Darkdust回答,因为他的回答不会引起任何NullPointerException我认为
authEmail.equals(null)
必须是
authEmail.equals(“null”)
我的Java已经生锈了,但是如果
authEmail
null
并且你试图调用
null
上的方法,你不会得到一个异常吗?谢谢!我试过authEmail.equals(null)但不起作用,但当我试过authEmail.equals(“null”)时,它起作用了!这是因为这里的
null
被视为值吗?@ShumailMohy ud Din您添加了null,而且,检查
“null”.equals(authEmail)
我试过authEmail.equals(null),但不起作用,但当我试过authEmail.equals(“null”)时,它起作用了!这是因为
null
此处被视为值吗?不是,这是因为变量确实包含文本。而该文本恰好是
null
。如
String text=“null”中所示做到了-实际上,这是最直接的解决方案。
if (authEmail == null || authEmail.equalsIgnoreCase("null")) {
  // handle null case
} else {
  // handle other case
}