空比较

t0m*_*cat 3 java

这可能听起来像一个真正的愚蠢问题,但请耐心等待:)所以我在我的代码中有一个if条件,如if ((msgBO.getEmpId().equals("") == false )) { // do something }我的问题是,如果我做出上述陈述,msgBO.getEmpId().equals(null) == false 它会有任何区别或这样我试图比较两个不同的东西?

jjn*_*guy 7

是的,""(空字符串)和null(根本没有字符串)之间存在很大差异.

任何Object引用都可以指向null.这代表"没有数据"或"没有".空字符串""表示没有长度的String.

这方面的一个例子如下:

String one = null;
String two = "";
int oneLength = one.length();
int twoLength = two.length();
Run Code Online (Sandbox Code Playgroud)

第一次打电话length会抛出一个NullPointerException.而第二个将返回0.