这是我的代码:
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
我的代码有什么问题吗?也许是一个愚蠢的问题。我是一个更新鲜的人,我需要你的帮助。 TTThanks!
答案 0 :(得分:3)
可能是你得到的情况" 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));
}
答案 1 :(得分:0)
错误发生在此行invite.equals(null)
。您正在检查null.equals(null)
它导致NULLPointerException
的原因。
请将其更正为System.out.println(invite == null);
,这样就不会引发异常。
更正了示例代码
String invite = LogInUtil.getInvite(this);
System.out.println(invite == null);
if ( invite != null){
System.out.println(invite);
System.out.println("=============================================="+(invite != null));
Invitation.setInvite(Long.valueOf(invite));
}
答案 2 :(得分:0)
使用StringUtils.empty()方法检查null,如果是string则使用empty。
我认为你得到了" null"你邀请变量中的字符串。