百日筑基第三十三天-JAVA 如何实现链式调用

在 Java 中实现链式调用通常涉及返回当前对象的引用以便方法可以连续调用。这种模式常见于构建器(Builder)模式或流畅接口设计中。下面是一个简单的例子来说明如何实现链式调用。

假设我们有一个 Person 类,它有一些属性和一些方法,这些方法可以设置这些属性,并且希望这些方法可以链式调用。

示例代码

首先定义一个 Person 类:

public class Person {private String name;private int age;private String job;// 构造函数public Person() {}// 设置姓名的方法public Person setName(String name) {this.name = name;return this; // 返回当前对象的引用}// 设置年龄的方法public Person setAge(int age) {this.age = age;return this; // 返回当前对象的引用}// 设置职业的方法public Person setJob(String job) {this.job = job;return this; // 返回当前对象的引用}// 打印信息的方法public void printInfo() {System.out.println("Name: " + name);System.out.println("Age: " + age);System.out.println("Job: " + job);}
}

接下来是使用这个类的例子:

public class Main {public static void main(String[] args) {Person person = new Person().setName("Alice").setAge(30).setJob("Developer").printInfo();}
}

在这个例子中,setName, setAge, 和 setJob 方法都返回了 this 对象的引用,使得我们可以连续调用这些方法。

需要注意的是,如果最后一个方法不是设置方法而是其他类型的方法(如 printInfo),那么它不应该返回 this,因为这可能不符合逻辑或者实际需求。

链式调用的优点在于它使得代码更加简洁易读,并且可以在一行代码中完成多个操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/876392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Logback 快速入门

一、简介 Java 开源日志框架,以继承改善 log4j 为目的而生,是 log4j 创始人 Ceki Glc 的开源产品。 它声称有极佳的性能,占用空间更小,且提供其他日志系统缺失但很有用的特性。 其一大特色是,在 logback-classic 中本…

大模型算法备案流程最详细说明【流程+附件】

文章目录 一、语料安全评估 二、黑盒测试 三、模型安全措施评估 四、性能评估 五、性能评估 六、安全性评估 七、可解释性评估 八、法律和合规性评估 九、应急管理措施 十、材料准备 十一、【线下流程】大模型备案线下详细步骤说明 十二、【线上流程】算法备案填报…

QT vs2019编译报错LNK2019无法解析的外部符号

严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2019 无法解析的外部符号 "public: __cdecl Dialog_Setting::Dialog_Setting(class QWidget *)" (??0Dialog_SettingQEAAPEAVQWidgetZ),函数 "public: __cdecl QtWid…

工业现场实测,焦化厂导烟车与装煤车风机实现无人作业

一、项目背景 作为我国重要的能源行业之一,焦化行业在国民经济中扮演着重要角色,焦化工艺是高温、高压、有毒物质等因素共同作用下进行的,因此存在着安全隐患,并伴有环境污染,改善焦化工艺的安全和环保问题是当前亟待…

Golang | Leetcode Golang题解之第287题寻找重复数

题目: 题解: func findDuplicate(nums []int) int {slow, fast : 0, 0for slow, fast nums[slow], nums[nums[fast]]; slow ! fast; slow, fast nums[slow], nums[nums[fast]] { }slow 0for slow ! fast {slow nums[slow]fast nums[fast]}return s…

分布式搜索引擎ES-DSL搜索详解

1.DSL搜索-入门语法 建立索引: xxx(自定义名称) 自定义mapping: POST /shop/_mapping {"properties": {"id": {"type": "long"},"age": {"type": "integer"},"username": {&quo…

Springboot 多数据源事务

起因 在一个service方法上使用的事务,其中有方法是调用的多数据源orderDB 但是多数据源没有生效,而是使用的primaryDB 原因 spring 事务实现的方式 以 Transactional 注解为例 (也可以看 TransactionTemplate, 这个流程更简单一点)。 入口:ProxyTransa…

Java语言程序设计——篇九(1)

🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿 内部类 概述内部类—内部类的分类成员内部类实战演练 局部内部类实战演练 匿名内部类实战演练 静态内部类实战演练 概述 内部类或嵌套类&#…

sheng的学习笔记-AI-公式-指数加权移动平均(EWMA)

AI目录:sheng的学习笔记-AI目录-CSDN博客 基础知识 指数加权移动平均(Exponential Weighted Moving Average),是一种常用的序列处理方式 看例子,首先这是一年365天的温度散点图,以天数为横坐标&#xff0…

【学一点儿前端】本地或jenkins打包报错:getaddrinfo ENOTFOUND registry.nlark.com.

问题 今天jenkins打包一个项目,发现报错了 error An unexpected error occurred: "https://registry.nlark.com/xxxxxxxxxx.tgz: getaddrinfo ENOTFOUND registry.nlark.com". 先写解决方案 把yarn.lock文件里面的registry.nlark.com替换为registry.npmmi…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第五十八章 中断下文之tasklet

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

全球性“微软蓝屏”事件及其对网络安全和系统稳定性的深远影响

近日,一次由微软视窗系统软件更新引发的全球性“微软蓝屏”事件,不仅成为科技领域的热点新闻,更是一次对全球IT基础设施韧性与安全性的深刻检验。这次事件源于美国电脑安全技术公司“众击”提供的一个带有“缺陷”的软件更新,它如…

女人内裤怎么洗才是最干净?内衣裤洗衣机怎么样?哪个牌子更好?

最近刚好用到一款比较好用的洗内衣裤洗衣机!如果你也和我一样有洗内衣裤烦恼的,或者可以看看! 内衣裤作为贴身穿的衣服,我是不会把它和外衣一起清洗的,而家里面的大洗衣机已经担起了清洗外衣的工作! 朋友们…

JVM 内存分析工具 Memory Analyzer Tool(MAT)入门(一)

一、打开 jvisualvm (VisualVM 是一款集成了 JDK 命令行工具和轻量级剖析功能的可视化工具。 设计用于开发和生产。) 打开 jvisualvm.exe 工具会出现如下一些监控指标 二、VisualVM可以根据需要安装不同的插件,每个插件的关注点都不同&#x…

uniapp vue3 使用画布分享或者收藏功能

使用HBuilder X 开发小程序,大多数的画布插件很多都是vue2的写法,vue3的很少 我自己也试了很多个插件,但是有一些还是有问题,不好用 海报画板 - DCloud 插件市场 先将插件导入项目中 自己项目亲自用过,功能基本是完善…

谷粒商城-性能压测

1.压力测试 在项目上线前对其进行压力测试(以每个微服务为单元) 目的:找到系统能承载的最大负荷,找到其他测试方法更难发现的错误(两种类型:内存泄漏,并发与同步). 1.性能指标 响应时间(Response Time (RT)): 响应时间 指用户从客户端发起一个请求开始,到客户端接收到从服务…

【第五天】HTTPS和HTTP有哪些区别,HTTPS的工作原理

HTTPS和HTTP的区别: 1.安全性: HTTP是明文传输协议,数据在传输的过程中不加密,容易被窃听和篡改。HTTPS通过使用SSL或TLS协议对数据进行加密,确保传输的数据在网络上是安全的,不容易被窃取和篡改。 2.加…

leetcode-104. 二叉树的最大深度

题目描述 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3示例 2: 输入:root [1,n…

自动化测试 pytest 中 scope 限制 fixture使用范围!

导读 fixture 是 pytest 中一个非常重要的模块,可以让代码更加简洁。 fixture 的 autouse 为 True 可以自动化加载 fixture。 如果不想每条用例执行前都运行初始化方法(可能多个fixture)怎么办?可不可以只运行一次初始化方法? 答&#xf…

一招就能轻松解决猫咪浮毛?最新值得买的浮毛空气净化器汇总分享

那次逛街后去朋友家,她家猫哈基米特别热情,一开门就扑过来,朋友直接给了个大拥抱加亲亲。汗水和猫毛全粘身上了,看着都让人头皮痒。好多铲屎官都抱怨,就算天天梳毛,家里还是到处都是毛,毕竟家里…