百日筑基第三十三天-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 中本…

《PRIMES is in P》论文解析

摘要 本文提供了一个无条件确定性多项式时间算法,用于确定输入数字是素数还是合数。 简介 素数在数学中一般,特别是在数论中具有基本重要性。因此,研究素数的不同性质具有极大的意义。特别感兴趣的是那些能够有效确定一个数是否为素数的性质…

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

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

实战:Redis实现排行榜、点赞和关注功能的基本操作

Redis是一款高性能的内存数据库,以其极快的读写速度和丰富的数据结构广泛应用于各种互联网服务中。本文将介绍如何基于Redis实现排行榜、点赞和关注功能,并提供相应的代码示例。 实战:Redis性能测试、调优和使用规范-CSDN博客 规范&#xf…

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

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

网络安全-华为华三交换机防火墙日志解析示例

DEF_SYSLOG_SWITCH_HUAWEI.py 华为交换机日志解析示例 # -*- coding: utf8 -*- import time from DEF_COLOR import * ## 终端显示颜色def 时间戳_2_时间文本(时间戳, 时间文本格式%Y-%m-%d %H:%M:%S):#时间文本格式 %Y-%m-%d %H:%M:%S时间类 time.localtime(时间戳)时间…

KingbaseES8(人大金仓数据库)备份还原

KingbaseES8(人大金仓数据库)备份还原 1.用户角色备份 sys_dumpall -U system -r -f backup_AAAAAA/user.sql2.数据库备份 sys_dump -h ip -p 端口 -U 用户 –F c -f 备份路径/xxx.dmp 库名 sys_dump -h 127.0.0.1 -p 54321 -U system -F c -f backup_AAAAAA/AAAAAA.dmp A…

C# 连接SQLServer操作数据库问题

C#联合SQLServer开发时连接数据库报错connection 连接问题 报错信息: This operation requires a connection to the ‘master’ database. Unable to create a connection to the ‘master’ database because the original database connection has been opened a…

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

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

Docker 安装指南

🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云专家博主 📌 擅长领域:全栈工程师、爬虫、ACM算法 🔥 微信:zsqtcyw 联系我领取学习资料 …

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…

React--Action Creators

在 Redux 中,Action Creators 是专门用于创建 actions 的函数。它们简化了生成 actions 的过程,使得代码更易读和可维护。 什么是 Action Creators Action 是一个普通的 JavaScript 对象,描述了对 Redux store 状态的某种变化。通常它具有一…

分布式搜索引擎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…

前端缓存策略

Service Worker (https) 使用 Service Worker 可以实现离线功能和缓存策略,使你的 Web 应用在没有网络连接时也能正常运行。下面是一个详细的步骤和示例代码,展示如何使用 Service Worker 实现这一功能。 步骤 注册 Service Worker安装 Se…

PHP框架中的数据加密实践:确保数据安全的艺术

引言 数据加密是保护敏感信息不被未授权访问的关键技术。在PHP框架中实现数据加密不仅可以增强应用的安全性,也是遵守数据保护法规的必要措施。本文将深入探讨在PHP框架中实现数据加密的方法,包括加密算法的选择、密钥管理、以及如何在应用程序中集成加…

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

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

java pdf转base64图片工具类

java pdf转base64图片工具类 依赖工具类 依赖 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.13</version></dependency>工具类 import org.apache.pdfbox.pdmodel.PDDocume…

组串式逆变器发展趋势

组串式逆变器单机功率不断增加 组串式逆变器的单体容量一般在100KW以下&#xff0c;在行业发展初期&#xff0c;一般以较小功率的组串式逆变器为主&#xff0c;随着功率模块等技术的不断发展&#xff0c;市场领先企业不断研发和推出单机功率较大的组串式逆变器。 随着单机功率的…

【攻防演练】【含poc和修复建议】海康威视综合安防管理平台 远程命令执行漏洞

使用防护类设备进行防护&#xff0c;限制访问/center/api/installation/detection 路径&#xff0c;拦截请求中出现的恶意命令注入 POST /center/api/installation/detection HTTP/1.1 Host: User-Agent: Mozilla/5.0 (Macintosh; Intel Mac Os X 10 12_6) AppleWebKit/537.36…