2016-03-07 60 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"); 
} 
相关问题