《Java工程师必读手册》——Java极客主义系列——Java代码精简之道(5)

简介: 《Java工程师必读手册》——Java极客主义系列——Java代码精简之道(5)

接上篇:https://developer.aliyun.com/article/1227325?spm=a2c6h.13148508.setting.16.34364f0esCxN3Z


五、 利用工具方法

 

1. 避免空值判断

 

普通

 

image.png 

 

精简

 

image.png 

 

2. 避免条件判断

 

普通

 

image.png 

 

精简

 

image.png 

 

3. 简化赋值语句

 

普通

 

image.png 

 

精简

 

image.png 

 

注意

Arrays.asList返回的List并不是ArrayList,不支持add等变更操作。

 

 

4. 简化数据拷贝

 

普通

 

image.png 

 

精简

 

image.png 

 

反例

 

image.png 

 

精简代码,但不能以过大的性能损失为代价。例子是浅层拷贝,用不着JSON这样重量级的武器。

 

5. 简化异常断言

 

普通

 

image.png 

 

精简

 

image.png 

 

注意

可能有些插件不认同这种判断,导致使用该对象时会有空指针警告。

 

6. 简化测试用例

 

把测试用例数据以JSON格式存入文件中,通过JSON的parseObject和parseArray方法解析成对象。虽然执行效率上有所下降,但可以减少大量的赋值语句,从而精简了测试代码。

 

普通

 

image.png

 

精简

 

image.png

 

建议

JSON文件名最好以被测试的方法命名,如果有多个版本可以用数字后缀表示。

 

7. 简化算法实现

 

一些常规算法,已有现成的工具方法,我们就没有必要自己实现了。

 

 

普通

 

image.png 

 

精简

 

image.png 

 

8. 封装工具方法

 

一些特殊算法,没有现成的工具方法,我们就只好自己亲自实现了。

 

普通

 

比如,SQL设置参数值的方法就比较难用,setLong方法不能设置参数值为null。

 

image.png

 

精简

 

我们可以封装为一个工具类SqlHelper,简化设置参数值的代码。

 

image.png

  接下篇:https://developer.aliyun.com/article/1227321?spm=a2c6h.13148508.setting.18.34364f0esCxN3Z

相关文章
|
18天前
|
Java 测试技术 应用服务中间件
常见 Java 代码缺陷及规避方式(下)
常见 Java 代码缺陷及规避方式(下)
46 0
|
19天前
|
Java
Java中ReentrantLock释放锁代码解析
Java中ReentrantLock释放锁代码解析
25 8
|
21天前
|
设计模式 存储 Java
23种设计模式,备忘录模式的概念优缺点以及JAVA代码举例
【4月更文挑战第9天】备忘录模式是一种行为设计模式,它能在不破坏对象封装的前提下,捕获并保存对象的当前状态,以便后面可以恢复到这个状态。
26 0
|
5天前
|
SQL Java 数据库
java代码中调用dao层查询接口,代码没有返回数据,打印出的sql查出了数据
java代码中调用dao层查询接口,代码没有返回数据,打印出的sql查出了数据
10 1
|
5天前
|
安全 Java 开发者
Java编程:深入探索其原理、特性与实战代码
Java编程:深入探索其原理、特性与实战代码
10 1
|
5天前
|
存储 算法 Java
滚雪球学Java(20):Java泛型与枚举:提升代码灵活性与可读性
【4月更文挑战第9天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
19 1
滚雪球学Java(20):Java泛型与枚举:提升代码灵活性与可读性
|
9天前
|
Java 测试技术 持续交付
云效产品使用常见问题之通过流水线构建的java代码,在docker文件里拿到失败如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
15天前
|
Java 测试技术
滚雪球学Java(12):JavaSE-if条件语句入门指南:掌握代码分支流程!
【4月更文挑战第1天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
50 1
滚雪球学Java(12):JavaSE-if条件语句入门指南:掌握代码分支流程!
|
17天前
|
人工智能 Kubernetes Java
Java开发工程师如何紧跟技术前沿对于保持专业竞争力、提升工作效率以及适应行业发展?
【4月更文挑战第4天】Java开发工程师如何紧跟技术前沿对于保持专业竞争力、提升工作效率以及适应行业发展?
21 4
|
18天前
|
Java
与JShell一起舞动代码的魔法:Java9交互式编程体验
与JShell一起舞动代码的魔法:Java9交互式编程体验
31 0