Java链式编程的定义、例子、使用方法、实际应用场景、自动装配构造
链式编程(Fluent Interface)是一种编程风格,允许通过方法调用连接在一起进行操作,通常用于提高代码的可读性和简洁性。在 Java 中,链式编程常通过返回
this(当前对象)来实现。这种做法在构建器模式中尤为常见。
举个例子
一般我们构造一个方法的时候,会写如下代码 十分的不优雅
public static void main(String[] args) {Dog dog = new Dog();dog.setAge(20);dog.setName("joker");}
链式编程起步
原始getter and setter
public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}
链式getter and setter
由于本身setter我们返回的void,此时我们将这个实例本身返回则可以实现链式编程
public int getAge() {return age;}//链式编程 由于本身setter我们返回的void,此时我们将这个实例本身返回则可以实现链式编程public Dog setAge(int age) {this.age = age;return this;}public String getName() {return name;}//链式编程public Dog setName(String name) {this.name = name;return this;}
使用链式
Dog dog = new Dog().setAge(10).setName("joker");
链式编程的实际使用
// 2.获取最小概率值BigDecimal minAwardRate = strategyAwardEntities.stream().map(StrategyAwardEntity::getAwardRate).min(BigDecimal::compareTo).orElse(BigDecimal.ZERO);
lombok自动生成构造
首先引入依赖假设你配置了Maven,如果还没学到Maven去网上搜索jar包导入库
<dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.26</version></dependency></dependencies>
其次在实体类方法上加上@Data和@Accessors(chain = true)注解即可
@Data
@Accessors(chain = true)
public class Dog {private int age;private String name;
}
@Data
属于组合注解用于生成所有字段的Getter、Setter、toString、构造器等大大节省代码量
@Accessors
当设置 chain = true 时,生成的 setter 方法会返回当前对象的引用,允许使用链式调用
相关文章:
Java链式编程的定义、例子、使用方法、实际应用场景、自动装配构造
链式编程(Fluent Interface)是一种编程风格,允许通过方法调用连接在一起进行操作,通常用于提高代码的可读性和简洁性。在 Java 中,链式编程常通过返回 this(当前对象)来实现。这种做法在构建器模…...
用 Git Stash 临时保存修改,轻松切换任务!
在开发过程中,我们经常会遇到这样的情况:正在写代码,突然领导或同事让你赶紧处理一个紧急 bug,但你当前的代码还没写完,不能提交,这时候该怎么办呢?别慌,Git 的 stash 命令正好能帮上…...
Android 下通过触发 SIGTRAP 信号实现反调试
版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 详细的 Linux 信号列表 Linux 信号是一种用于进程间通信(IPC)和异常处理的机制。以下是详细的 Linux 信号列表,包含信号名…...
【MySQL】 表的增删操作
目录 1.Create(增) 1.1.单行数据 全列插入 1.2.多行数据 指定列插入 1.3.插入否则更新 1.4.替换数据(REPLACE) 2.Delete(删) 2.1.删除表中的某个条目 2.2.删除整张表数据 2.3.截断表 1.Create…...
新生入门季 | 学习生物信息分析,如何解决个人电脑算力不足的问题?
随着生物信息学在科研和教育中的快速普及,越来越多的新生开始接触基因组测序、RNA分析等复杂计算任务。然而,在面对这些大规模数据时,个人电脑的算力往往显得捉襟见肘。你是否也在为自己的笔记本性能不足而苦恼? 这篇文章将为你提…...
20255 - 中医方剂学 - 考研 - 执业
第1章 总论 1.我国现存最早的记载方剂的医书是()( ) [单选] A.《太平圣惠方》 B.《黄帝内经》 C.《五十二病方》 D.《千金要方》 E.《外台秘要》 正确答案: C 2.我国最早的中医经典理论著作是()( ) [单选] A.《伤寒杂病论…...
【Vue.js设计与实现】第三篇第9章:渲染器-简单Diff算法-阅读笔记
文章目录 9.1 减少 DOM 操作的性能开销9.2 DOM 复用与 key 的作用9.3 找到需要移动的元素9.4 如何移动元素9.5 添加新元素9.6 移除不存在的元素 系列目录:【Vue.js设计与实现】阅读笔记目录 当新旧vnode 的子节点都是一组节点时,为了以最小的性能…...
服务器软件之Tomcat
服务器软件之Tomcat 服务器软件之Tomcat 服务器软件之Tomcat一、什么是Tomcat二、安装Tomcat1、前提:2、下载3、解压下载的tomcat4、tomcat启动常见错误4.1、tomcat8.0 startup报错java.util.logging.ErrorManager: 44.2、java.lang.UnsatisfiedLinkError 三、Tomca…...
Flutter包管理(三)
1、作用 在APP的实际开发过程中往往会依赖很多包,而这些包之间存在着交叉依赖、版本依赖,由开发者自己管理手动管理会非常麻烦,每种开发生态或编程官方会提供一些包的管理工具,在Flutter中我们在pubspec.yaml文件中来管理第三方依…...
CGNS资料
CGNS数据文件 资料 CFD General Notation System CGNS Converters vtkCGNSReader cgnsToFromFoam Example Computer Codes 8.1.2. CGNS Mesh Format and Multizone Interface Connectivity 8 Multizone Interface Connectivity pyvista.cgnsreader CGNS for MATLAB and Octave…...
论文阅读(十六):Deep Residual Learning for Image Recognition
文章目录 1.介绍2.基本原理3.两种残差块4.网络结构 论文:Deep Residual Learning for Image Recognition 论文链接:Deep Residual Learning for Image Recognition 代码链接:Github 1.介绍 在ResNet网络提出之前,传统的卷…...
Dubbo 序列化方式
Hession 这是dubbo的默认序列化协议,是一种二进制协议,他的特点是序列化的速度比较快,并且序列化的数据体积比较小。Hession适合于大部分场景,因此被选为dubbo的默认序列化协议。 Json Json是一种基于文本的序列化方式…...
如何替换OCP节点(二):使用 antman脚本 | OceanBase应用实践
前言: OceanBase Cloud Platform(简称OCP),是 OceanBase数据库的专属企业级数据库管理平台。 在实际生产环境中,OCP的安装通常是第一步,先搭建OCP平台,进而依赖OCP来创建、管理和监控我们的生…...
15.JVM垃圾收集算法
一、垃圾收集算法 1.分代收集理论 分代收集理论是JAVA虚拟机进行垃圾回收的一种思想,根据对象存活周期的不同将内存分成不同的几个区域;一般将JAVA堆内存分为新生代和老年代;根据每个分代特点选择不同的垃圾收集器; 在新生代中&am…...
软件工程:图书管理系统甘特图
1 实验目的 熟悉GanttProject 软件环境,能够使用GanttProject绘制甘特图,进行项目管理与规划。 2 实验内容 为小型图书管理系统项目的实施计划绘制甘特图。 小型图书管理系统项目包含登录、浏览、管理读者、管理图书资料、管理书目、登记借书、登记还书、预定图书、…...
视频的编解码格式
文章目录 视频的编解码格式概念术语视频处理流程视频封装格式视频编码格式视频编解码器,视频容器和视频文件格式之间的区别补充视频码率 参考资料 视频的编解码格式 概念术语 两大组织主导视频压缩的组织及其联合(joint)组织 ITU-T(VCEG) ITU-T的中文名称是国际电信…...
网络资源模板--Android Studio 实现简易新闻App
目录 一、项目演示 二、项目测试环境 三、项目详情 四、完整的项目源码 一、项目演示 网络资源模板--基于Android studio 实现的简易新闻App 二、项目测试环境 三、项目详情 登录页 用户输入: 提供账号和密码输入框,用户可以输入登录信息。支持“记…...
LabVIEW提高开发效率技巧----离线调试
离线调试是LabVIEW开发中一项重要的技巧,通过使用Simulate Signal Express VI生成虚拟数据,开发者能够有效减少对实际硬件的依赖,加速开发过程。这种方法不仅可以提高开发效率,还能降低成本,增强系统的灵活性。 离…...
6N137S1取反电路图
文章目录 一、前言二、6N137S1性能介绍三、应用电路图 一、前言 在硬件电路设计中需要用到隔离电路,但此引脚输出为WS2812的信号,频率有840khz,所以需要使用逻辑光耦,选用6N137S1光耦,速率能达到10Mhz,能满…...
Nullinux:一款针对Linux操作系统的安全检测工具
关于Nullinux Nullinux是一款针对Linux操作系统的安全检测工具,广大研究人员可以利用该工具针对Linux目标设备执行网络侦查和安全检测。 该工具可以通过SMB枚举目标设备的安全状况信息,其中包括操作系统信息、域信息、共享信息、目录信息和用户信息。如…...
Qtile配置终极指南:10个Python配置文件编写技巧
Qtile配置终极指南:10个Python配置文件编写技巧 【免费下载链接】qtile :cookie: A full-featured, hackable tiling window manager written and configured in Python (X11 Wayland) 项目地址: https://gitcode.com/gh_mirrors/qt/qtile Qtile是一款功能全…...
避坑指南:Invest模型年产水量模拟,HWSD土壤数据处理与Biophysical表填写的那些坑
Invest模型年产水量模拟实战避坑指南:HWSD数据处理与Biophysical表填写精要 当你在深夜第三次运行Invest模型却依然得到明显不合理的水量分布图时,那种挫败感我深有体会。作为曾经在HWSD土壤数据库和Biophysical表上栽过跟头的"过来人"&#x…...
OpenClaw自动化写作:Qwen2.5-VL-7B生成图文并茂技术文档
OpenClaw自动化写作:Qwen2.5-VL-7B生成图文并茂技术文档 1. 为什么需要自动化技术文档写作 作为一个经常需要编写技术文档的开发者,我深知文档写作的痛点。每次完成一个功能模块后,总要花大量时间整理代码片段、截图、编写说明文字。最麻烦的…...
从Remix到Ganache:一次智能合约部署的完整“后台日志”解读
从Remix到Ganache:智能合约部署的"后台日志"深度解析 当你第一次成功部署智能合约时,看到Ganache和Remix控制台输出的那一大串信息,是不是感觉像在看天书?那些Block Hash、Gas Used、txIndex究竟在说什么?这…...
ChatGPT背后的大模型架构战:Transformer到MoE的技术进化全解析,AI工程师必读!
当ChatGPT引爆全球AI浪潮,当DeepSeek以低成本高性能震惊业界,你是否真正了解这些大模型背后的技术架构?本文将带你穿越大语言模型的技术演进史,揭秘从Transformer到MoE的关键跃迁。一、开篇:大模型时代的架构之争 2026…...
单线级联可寻址七段数码管设计
1. 项目概述可寻址七段数码管显示模块(Addressable Seven Segment Display)是一种突破传统驱动架构的嵌入式显示解决方案。其核心设计目标是:仅需单根 GPIO 引脚,即可级联驱动任意数量的七段数码管单元。该方案彻底摒弃了传统数码…...
Windows 11安卓子系统终极指南:免费运行Android应用的完整解决方案
Windows 11安卓子系统终极指南:免费运行Android应用的完整解决方案 【免费下载链接】WSA Developer-related issues and feature requests for Windows Subsystem for Android 项目地址: https://gitcode.com/gh_mirrors/ws/WSA 你是否曾经想在Windows电脑上…...
双蒙皮声纳导流罩(Sonar Domes)技术情报报告
1. 概述 声纳导流罩(Sonar Dome)是安装在舰艇艏部或潜艇前端的流线型外壳,用于保护声纳换能器阵列,同时确保声学性能和水动力性能。现代声纳导流罩采用双蒙皮结构(Double-Skin Design),兼顾结构强度、轻量化、声学透明性和维护便捷性。 2. 双蒙皮结构设计特点 2.1 柯蒂…...
4道高频面试题,吃透时间复杂度(递归_堆_贪心_快排)
4道高频面试题,吃透时间复杂度(递归/堆/贪心/快排) 前言:时间复杂度是算法面试的“必考题”,也是区分初级与中级开发者的核心考点。很多开发者能写出正确的算法代码,却无法清晰、严谨地分析其时间复杂度&am…...
作业61 10 11 12
# 输入三角形三边a float(input("请输入三角形的边A:"))b float(input("请输入三角形的边B:"))c float(input("请输入三角形的边C:"))# 判断是否能构成三角形(边长>0 且 任意两边之和大于第三…...
