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));
}