2016-03-07 98 views
-4

我是新的Java編程。現在我有一個問題,當我有字符串變量等於空。當我對字符串,錯誤檢查條件:如何檢查字符串值是否等於null?

異常線程「main」顯示java.lang.NullPointerException

這是我的代碼:

public class Test { 
    static String a=null; 
    public static void main(String[] args) { 
     if(a.equals(null)){ 
      System.out.println("Null"); 
     } 
    } 
} 

回答

2

請與==或= ,如:!

if(a!=null){ 
    System.out.println("is not Null"); 
} 
+0

爲什麼我不能使用equals()方法? –

+1

https://docs.oracle.com/cd/E19798-01/821-1841/gkcrg/index.html –

+0

在實踐中更好,而不是使用If(a!= null),您應該使用if(null!= a ) – ManthanB

4

相反的a.equals(null)你應該做a == null

if(a == null) { 
    System.out.println("Null"); 
} 

或者,您可以使用StringUtils檢查字符串是null或空做:

if(StringUtils.isEmpty(a)) { 
    System.out.println("Null"); 
} 
+0

爲什麼我不能使用equals()方法? –

+4

因爲如果'a'本身是'null',它將是'null.equals()',並且它不是很好。你不能在'null'對象上調用方法。 – user2004685

+1

@ user2004685:那麼,在'null' *引用*。沒有這種「null」對象。值得保持變量,參考和對象之間的區別非常明確。 –

2

如果有兩個引用是null一個潛在的,你可以使用

Objects.equals(a, b) 
0

如果你想檢查null

if(a == null){ 
    System.out.println("I am null"); 
} 

如果你想檢查空或空字符串

if(a != null && a.length() == 0){ 
    System.out.println("I am an empty String"); 
} 
相關問題