打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Java中不容拒绝的一种优雅的写法

期末考试成绩公布了,一学生气愤地找老师评理。学生:“老师,我认为这门课我不应该得零分。”老师:“是啊,我也这么认为,可学校规定,最低只能打零分。”

做CodeReview的时候,评价一段代码的好坏通常是仁者见仁。还好有一种无法拒绝的理由叫做【规定】。

下面讲一种通过规定以理服人的例子:

观点

不要用xx != null && xx.length()>0 来判空,可以使用apache的commons包。例如使用:

StringUtils.isNotEmpty

CollectionUtils.isEmpty

不容拒绝理由

使用xx != null && xx.length()>0 来判空,公司里的静态代码检查会检查让你覆盖这两个条件,你需要写两个单测来完成任务。而使用apache的commons只需要写一个单测。你的条件覆盖率达标了吗?

深层原因

【编程一生】的文章怎么可能只给一个不容拒绝的理由这么浅。建议这样使用毕竟有背后深层的优势,拿StringUtils.isNotEmpty举例看看apache的代码优雅在哪里。

StringUtils类的源码:

public static boolean isNotEmpty(String str) {
return !isEmpty(str);

}

public static boolean isEmpty(String str) {
return str == null || str.length() == 0;
}

咦,好像和自己实现的差不多嘛!str == null || str.length() == 0 取个反,还多个一个反运算。效率一点也不高嘛!

请注意这两个方法是静态的!静态方法在类加载时候初始化,常驻在内存中只存一份。而自己写的判断语句,只能这个方法使用,其他方法同样的语句要复制一份。静态方法更加方便快捷。

当然,apache的commons最根本的优势是语义更加清晰,更易读。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
排名Top 16的Java实用类库
【开发常识】这个问题,直接导致年终奖没了……(惨兮兮)
apache commons
apache commons常用工具类
StringUtils工具类的使用--JavaEE开源博客-阿Q
推荐 16 个超级实用的 Java 工具类
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服