欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

实践中的重构08_集合判空时的可读性

程序员文章站 2022-05-31 09:00:47
...
代码的可读性应该还是着重强调的,毕竟,代码是给人读的。如
if(null==a)

这样的代码,看的出是从c惯用法继承下来,试着读一下,当null不为a,则如何如何。至少我读起来有点别扭。我还是喜欢这样的形式,当a不为null,则如何如何。
当然,更厉害的是经常看到如下的片段
if(list.size()==0)
if(list.size()<1)

ok,size==0这个我还可以想的通为什么这么写,但是<1这种写法真的让人无语。
if(list.isEmpty())

这样当然更进一步。为什么呢,因为使用size是因为我们知道该类的内部实现,判断时涉及了类的实现,而isEmpty只是语义上判断一个列表是否为空,不涉及实现细节。
还有一种挺常见的,好的做法是集合类引用对象永远不用判null。
    if(list!=null && !list.isEmpty()){  
// do something.
}

我们可以把对list的判null和判空抽出来,变成
    if(!CollectionUtil.isEmpty(list)){  
// do something.
}

更进一步。
    if(CollectionUtil.isNotEmpty(list)){  
// do something.
}

问题在于,null和empty在特定的上下文中真的是一样的吗。

上一篇: mysql数据页

下一篇: Sqlite3总结