2016-08-31 5 views
-2

Dies ist mein Code:Warum ist der Wert dieser Zeichenfolge immer noch null, obwohl ich überprüft habe, ob es null ist?

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

Dies ist die Methode in 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; 
} 

Dies ist das Ergebnis in logcat:

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

Gibt es etwas falsch mit meinem Code? Vielleicht ist eine dumme Frage. Ich bin frischer und brauche deine Hilfe. TT Danke!

+1

'invite.equals (null)' würde eine NullPointerException auslösen, wenn 'invite == null' – Eran

+0

' System.out.println (invite == null); ' –

+3

Angesichts Ihrer Ausgabe würde ich den Wert von' sagen Invite' ist der String '" null "'. – Eran

Antwort

3

Es Fall sein, könnten Sie „null“ als String-Wert nicht null sind, versuchen Sie unter Code, wenn immer noch nicht versuchen, Ihr Projekt zu reinigen

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

Vielen Dank. Ich habe "null" in meine sharedprefrence, deshalb bekomme ich "null" statt null in der Methode von getInvite(); – Motee

0

Der Fehler ist bei dieser Zeile invite.equals(null). Sie überprüfen null.equals(null), deshalb wirft es NULLPointerException.

Bitte korrigieren Sie es auf die System.out.println(invite == null); so wird es keine Ausnahme auslösen.

Korrigierte Beispielcode

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

Wo hat @Motee erwähnt, dass es 'NULLPointerException' wirft? Es könnte sein, wenn der Wert von 'Invite' tatsächlich Null ist, was nicht der Fall ist –

+0

Es würde NullPointer Ausnahme werfen. Wenn die Einladung null ist –

+0

Es würde NPE werfen, wenn 'invite'' null' wäre. Aber offensichtlich ist es nicht. Scheint 'invite' ist' "null" '. – Axel

0

Verwenden Sie die StringUtils.empty() - Methode zum Überprüfen von null und leer im Falle einer Zeichenfolge.

Ich denke, Sie erhalten "Null" String in Ihrer Invite-Variable.