Java判断null的几种方式

Posted bisal(Chen Liu)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java判断null的几种方式相关的知识,希望对你有一定的参考价值。

组内code review时,有同学提到字符串判断空值的写法,如下两种,

(1)null在后,

@Test
public void testDemo1() 
  String str = null;
  if (str == null) 
    System.out.println("null在后");
    return;
  

(2)null在前,

@Test
public void testDemo2() 
  String str = null;
  if (null == str) 
    System.out.println("null在前");
    return;
  

这两种写法,有什么区别?

这两个测试,都可以执行,有种解释是,null放在前面是为了避免少写一个"=",因为"null="书写会报错,防止笔误写成"=null",不会报错,进而漏掉问题。

null==a是以前C语言的写法,因为C允许if(a=null)这种判断,但这个其实是少写了个"=",所以c开发的人员为了避免这问题,就出现了null==a的写法,因为这样一旦漏写了个=号,编译器就会编译不通过。

但这在Java和c#这种面向对象的语言里面是不需要的,因为少个=号,不管java还是C#都是编译错误。

因此,Java中对null进行判断放在前后没有什么区别,只是为了代码规范,为了避免写代码时书写错误(建议将null放在前面,并不强制)。

顺带说下,Java中判断字符串是否为空的四种方法,

方法一:最多人使用的一个方法,直观,方便,但效率很低,

if(s == null || s.equals(""));

方法二:比较字符串长度,效率高

if(s == null || s.length() == 0);

方法三:Java SE 6.0才开始提供的方法,效率和方法二几乎相等,但出于兼容性考虑,推荐使用方法二,

if(s == null || s.isEmpty());

方法四:这是一种比较直观,简便的方法,而且效率也非常的高,与方法二、三的效率差不多,

if (s == null || s == "");

注意,s == null这个判断是有必要存在的,如果String类型为null,进行equals(String)或length()等操作会抛出java.lang.NullPointerException。而且s==null的顺序必须出现在前面,不然同样会抛出java.lang.NullPointerException。

如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发pyq,

近期更新的文章:

MySQL新身份验证插件caching_sha2_password

金融知识小科普 - 北向资金

MySQL的MVCC再学习

金融知识小科普 - 宽基指数

能从家中看球的球场

近期的热文:

"红警"游戏开源代码带给我们的震撼

文章分类和索引:

公众号1100篇文章分类和索引

以上是关于Java判断null的几种方式的主要内容,如果未能解决你的问题,请参考以下文章

Java判断空逻辑的几种方式

Java判断空逻辑的几种方式

#yyds干货盘点#Java中拼接String的几种方式

c#中判断对象为空的几种方式(字符串等)

判断字符串是否为空的几种方式

Java单例模式实现的几种方式