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

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

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


四、 利用自身方法

 

1. 利用构造方法

 

构造方法,可以简化对象的初始化和设置属性操作。对于属性字段较少的类,可以自定义构造方法。

 

 

 

普通

 

image.png 

 

精简

 

image.png 

 

注意

如果属性字段被替换时,存在构造函数初始化赋值问题。比如把属性字段title替换为nickname,由于构造函数的参数个数和类型不变,原有构造函数初始化语句不会报错,导致把原title值赋值给nickname。如果采用Setter方法赋值,编译器会提示错误并要求修复。

 

2. 利用Set的add方法

 

利用Set的add方法的返回值,可以直接知道该值是否已经存在,可以避免调用contains方法判断存在。

 

普通

 

以下案例是进行用户去重转化操作,需要先调用contains方法判断存在,后调用add方法进行添加。

 

image.png 

 

精简

 

image.png 

 

3. 利用Map的computeIfAbsent方法

 

利用Map的computeIfAbsent方法,可以保证获取到的对象非空,从而避免了不必要的空判断和重新设置值。

 

普通

 

image.png 

 

精简

 

image.png 

 

4. 利用链式编程

 

链式编程,也叫级联式编程,调用对象的函数时返回一个this对象指向对象本身,达到链式效果,可以级联调用。链式编程的优点是:编程性强、可读性强、代码简洁。

 

普通

 

image.png 

 

精简

 

image.png 


  接下篇:https://developer.aliyun.com/article/1227322?groupCode=java

 

相关文章
|
18天前
|
Java 测试技术 应用服务中间件
常见 Java 代码缺陷及规避方式(下)
常见 Java 代码缺陷及规避方式(下)
46 0
|
20天前
|
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
|
6天前
|
存储 算法 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