Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.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 为什么这个字符串的值仍然为null,尽管我已经检查了它是否为null?_Java_Android - Fatal编程技术网

Java 为什么这个字符串的值仍然为null,尽管我已经检查了它是否为null?

Java 为什么这个字符串的值仍然为null,尽管我已经检查了它是否为null?,java,android,Java,Android,这是我的代码: String invite = LogInUtil.getInvite(this); System.out.println(invite.equals(null)); if ( invite != null){ System.out.println(invite); System.out.println("=============================================="

这是我的代码:

String invite = LogInUtil.getInvite(this);
        System.out.println(invite.equals(null));
        if ( invite != null){

            System.out.println(invite);
            System.out.println("=============================================="+(invite != null));
            Invitation.setInvite(Long.valueOf(invite));
        }
这是LoginUtil中的方法:

public static String getInvite(Context mContext){
    // 获取搜索记录文件内容
    SharedPreferences sp = mContext.getSharedPreferences(PREFERENCE_NAME, 0);
    String history = sp.getString(PREFERENCE_NAME, "");
    String[] tmpHistory = history.split("==");
    if (tmpHistory.length==2){
        return tmpHistory[1];
    }
    return null;
}
这是logcat中的结果:

I/System.out: false
I/System.out: null
I/System.out: ==============================================true

我的代码有什么问题吗?也许这是个愚蠢的问题。我是新生,我需要你的帮助。谢谢

错误在此行
invite.equals(null)
。您正在检查
null.equals(null)
这就是它抛出
NULLPointerException
的原因

请将其更正为
System.out.println(invite==null)所以它不会引发异常

更正的示例代码


在这种情况下,您可能会得到“null”作为字符串值,而不是null,请尝试下面的代码,如果仍然无法工作,请尝试清理您的项目

String invite = LogInUtil.getInvite(this);

            if ( invite != null && !"null".equals(invite)){

                System.out.println(invite);
                System.out.println("=============================================="+(invite != null));
                Invitation.setInvite(Long.valueOf(invite));
            }
使用StringUtils.empty()方法检查字符串的null和empty


我认为您在invite变量中得到了“null”字符串。

invite.equals(null)
如果
invite==null
根据您的输出,我想说
invite
的值是字符串
“null”
。正如@Eran已经指出的,
invite
的值是
null
String我同意@Eran,添加一个
System.out.println(“null.equals(invite))
来确认这一点。@Motee在哪里提到它正在抛出
NULLPointerException
?如果
invite
的值实际上为null(不是这种情况),则可能会引发NullPointer异常。如果invite为null,则如果
invite
null
,则会抛出NPE。但显然不是这样。似乎
invite
“null”
。非常感谢。我将“null”放在我的SharedReference中,这就是为什么我在getInvite()方法中得到的是“null”而不是null;
String invite = LogInUtil.getInvite(this);

            if ( invite != null && !"null".equals(invite)){

                System.out.println(invite);
                System.out.println("=============================================="+(invite != null));
                Invitation.setInvite(Long.valueOf(invite));
            }