【问题标题】:Which is the best way to use not null condition,Whether direct condition or using utility methods?使用非空条件的最佳方法是直接条件还是使用实用方法?
【发布时间】:2016-07-10 07:20:43
【问题描述】:

我想检查很多地方的非空条件,那么哪种方式可以提供最佳性能..?

1.是否if(object !=null){ ... }

2.是否if(Util.isNotNull(object)){...}

【问题讨论】:

  • 如果Util.isNotNull 做了显而易见的事情,这些将具有大致相同的性能特征,尽管第一个几乎肯定会更具可读性,等等。
  • 如果您可以避免方法调用,请避免。
  • 第一个可以使用,与 java 版本无关。对于第二个 java 1.7+ 是必需的。因此,如果您不确定 java 版本,最好使用第一种方法。

标签: java performance if-statement conditional-statements notnull


【解决方案1】:

第一种方法是更好的方法

if(object !=null){ ... }

因为它将使用short circuit evaluation.

【讨论】:

  • 第二种方法为方法isNotNull创建奇数堆栈,类似方法适用于附加检查,例如isNotEmpty(String txt){return txt != null && txt.lenght > 0}
【解决方案2】:

简单的做

if(obj == null) throw new IllegalArgumentException();

else{
// Do your computations
....
}

【讨论】:

    【解决方案3】:

    根据您要检查的对象,有不同的实用程序类可用于检查空值和空值。 对于字符串,您有 org.apache.commons.lang.StringUtils.isBlank,它执行以下操作: 检查字符串是否为空格、空 ("") 或 null。

     StringUtils.isBlank(null)      = true
     StringUtils.isBlank("")        = true
     StringUtils.isBlank(" ")       = true
     StringUtils.isBlank("bob")     = false
     StringUtils.isBlank("  bob  ") = false
    

    对于 Collection,您有 org.apache.commons.collections.CollectionUtils.isEmpty 来检查您的收藏是否不为空且不为空

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-25
      • 1970-01-01
      相关资源
      最近更新 更多