java规范(三)-----判空----方法内的为空判断
一般我们判空或者有判断条件时 都是使用
if(条件成立){
执行代码
}
这样的逻辑。
但是如果对象的字段很深层次时或者条件很多时就容易形成很多个{}的情况,这样就容易分不出哪个花括号属于哪部分。如下:
if(条件1成立){
if(条件2成立){
if(条件3成立){
if(条件4成立){
执行代码
}
}
}
}
我们可以返过来判断
if(条件1不成立){
return;
}
if(条件2不成立){
return;
}
if(条件3不成立){
return;
}
if(条件4不成立){
return;
}
执行代码;
这样逻辑层次就清晰些。
实际代码优化例子:
优化前
public String updateOrderDateTime() { List<Order> orders = orderReposity.getAllObjects(Order.class); if (orders != null && orders.size() > 0) { for (Order order : orders) { OrderStatus orderStatus = order.getOrderStatus(); if (orderStatus != null) { HistoryStatus current = orderStatus.getCurrent(); if (current != null) { current.setDatetime(current.getDatetime()); } List<HistoryStatus> historyStatuss = orderStatus .getHistory(); for (HistoryStatus historyStatus : historyStatuss) { historyStatus.setDatetime(historyStatus.getDatetime()); } } orderReposity.deleteObject(Order.class, order.getId()); orderReposity.saveObject(order); } } return "ok"; }
优化后能减少花括号的嵌套程度
public String updateOrderDateTime() { List<Order> orders = orderReposity.getAllObjects(Order.class); if (orders == null || orders.size()==0) { return "ok"; } for (Order order : orders) { OrderStatus orderStatus = order.getOrderStatus(); if (orderStatus == null) { continue; } HistoryStatus current = orderStatus.getCurrent(); if (current == null) { continue; } current.setDatetime(current.getDatetime()); List<HistoryStatus> historyStatuss = orderStatus .getHistory(); for (HistoryStatus historyStatus : historyStatuss) { historyStatus.setDatetime(historyStatus.getDatetime()); } orderReposity.deleteObject(Order.class, order.getId()); orderReposity.saveObject(order); } return "ok"; }
java规范(三)-----判空----方法内的为空判断的更多相关文章
- java list三种遍历方法性能比較
从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便測试各种遍历方法的性能,測试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象 ...
- java list三种遍历方法性能比较
从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象 ...
- Effective Java 第三版——43.方法引用优于lambda表达式
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
- Java List /ArrayList 三种遍历方法
java list三种遍历方法性能比较http://www.cnblogs.com/riskyer/p/3320357.html JAVA LIST 遍历http://blog.csdn.net/lo ...
- 2017.10.25 Java List /ArrayList 三种遍历方法
java list三种遍历方法性能比较 学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入记录,然后遍历ArrayList,测试代码如下: pac ...
- Java 方法内联
什么是Java 方法内联? 我们先来看看普遍的内联函数含义.在维基百科中解释为: 内联函数:在计算机科学中,内联函数(有时称作在线函数或编译时期展开函数)是一种编程语言结构,用来建议编译器对一些特殊函 ...
- Effective Java 第三版——10. 重写equals方法时遵守通用约定
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
- (java)selenium webdriver学习---三种等待时间方法:显式等待,隐式等待,强制等待
selenium webdriver学习---三种等待时间方法:显式等待,隐式等待,强制等待 本例包括窗口最大化,刷新,切换到指定窗口,后退,前进,获取当前窗口url等操作: import java. ...
- 深入理解为什么Java中方法内定义的内部类可以访问方法中的局部变量
好文转载:http://blog.csdn.net/zhangjg_blog/article/details/19996629 开篇 在我的上一篇博客 深入理解Java中为什么内部类可以访问外部类的成 ...
随机推荐
- Javascript库,前端框架(UI框架),模板引擎
JavaScript库:JQuery,undoscore,Zepto 纯Javascript语言封装, 前端框架(UI框架):Bootstrap,Foundation,Semantic UI,Pure ...
- ----------BMI指数小程序----------
# 1.创建并输出菜单, 菜单是不可变的. 所以使用元组# menus = ("1, 录入", "2, 查询", "3, 删除", &quo ...
- 【Jmeter测试】BeanShell介绍和使用
BeanShell是什么? BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法; BeanShell是一种松散类型的脚本语言: BeanShell是用Jav ...
- IDEA 破解图文教程 - 2018.9 更
你好!这里是你要找的 IDEA 破解方法 目录 一.前言 二.IDEA 安装 2.1 下载IDEA 旗舰版 2.2 开始安装 2.3 自定 ...
- CsvHelper文档-5配置
CsvHelper文档-5配置 CsvHelper库被设计成快速且简单易用,但是有时候默认的是设置不符合要求,需要你自己改变一些东西.所以csvHelper内置了很多自定义设置选项来改变读写行为.特别 ...
- Java实现在线预览功能
java实现在线预览功能,需要用到 jacob.dll jacob.jar 预览pdf所需js pdfobject.min.js 将上传文件转为pdf保存. <div class=&qu ...
- Halcon算子解释
Halcon算子解释大全 Halcon/Visionpro视频教程和资料,请访问 重码网,网址: http://www.211code.com Chapter 1 :Classification 1. ...
- leetcode个人题解——#31 Next Permutation
写这题时脑子比较混乱,重写了一遍wiki大佬的解法. 算法: According to Wikipedia, a man named Narayana Pandita presented the fo ...
- IC设计前后端流程与EDA工具
IC前端设计(逻辑设计)和后端设计(物理设计)的区分: 以设计是否与工艺有关来区分二者:从设计程度上来讲,前端设计的结果就是得到了芯片的门级网表电路. 前端设计的流程及使用的EDA工具 1.架构的设计 ...
- firefox插件Firebug的使用教程
什么是Firebug 从事了数年的Web开发工作,越来越觉得现在对WEB开发有了更高的要求.要写出漂亮的HTML代码:要编写精致的CSS样式表展示每个页面模块:要调试 javascript给页面增加一 ...