Java链式编程

一:链式编程

可以简化编程。代码简洁。

定义:

链式编程:顾名思义,链子嘛。它是一种编程范式,它允许将多个函数或操作连接在一起,形成一个链条,以执行复杂的操作。

优点:

编程性强、代码简洁 、可读性强。

使用条件:

方法返回当前对象,即返回this;或方法支持链式调用,即返回调用该方法的对象。

案例1:


import lombok.Data;
//链式编程是一种编程风格,其中调用对象的方法会返回对象本身,从而使得可以在同一行代码中连续调用多个方法。
@Data
public class School {
 
    private Integer  id;
    private String name;
    private String age;
    //返回School对象,方便链式调用
    public School setId(Integer id) {
        this.id = id;
        return this;
    }
    //返回School对象,方便链式调用
    public School setName(String name) {
        this.name = name;
        return this;
    }
    //d返回School对象,方便链式调用
    public School setAge(String age) {
        this.age = age;
        return this;
    }
}
输出结果:

在这里插入图片描述

案例2:

其中String中也有链式编程思想。可以进入String源码中查看。
在这里插入图片描述
例如可以将某对象toString()转化为String后,或将String对象valueOf()赋值后,进行concat()拼接、replace()替换、substring()截取。大多数都能组装起来,使之符合链式编程。

案例3:

StringBuffer和StringBuilder链式示例

    public static void main(String[] args) {
     String stringBuffer = new StringBuffer().append("hello").append("world").toString();
     System.out.println(stringBuffer);
     String stringBuilder = new StringBuilder().append("hello").append("world").toString();
     System.out.println(stringBuilder);
    }

在这里插入图片描述

案例4:

@Accessors注解开启链式编程
在实体类中使用这个注解,是lombok中的。使用之前必须引入lombok依赖。

import lombok.Data;
import lombok.experimental.Accessors;

@Data
@Accessors(chain = true)//开启链式调用
public class Student {
 
    private Integer  id;
    private String name;
    private String age;

}

测试类:

    public static void main(String[] args) {
     Student student = new Student().setName("张三").setAge("21").setId(1234567890);
     System.out.println(student.toString());
    }

在这里插入图片描述
可以看出,当使用注解时,不用自己再设计具体的链式实现,注解会开启链式操作。这个注解常用在Spring中的实体类上。
同时,使用@Accessors(fluent = true)时,省略给对象赋值和取值时候得set、get前缀,可以直接用对象点出来元素,不用set。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

酒店水电智能化管理解决方案

在酒店行业中,水电能源的高效管理是实现可持续发展与降低运营成本的关键。酒店水电智能化管理解决方案通过运用先进技术,实现了对酒店水电资源的高效、智能监控与管理。本文将从解决方案的背景、核心技术以及带来的效益三个方面全面介绍该解决方案。 解…

快速掌握乡村振兴展厅设计要点,打造令人瞩目的展示效果!

基于数字多媒体技术研发的多媒体互动装置,给展览展示行业带来了巨大的创新和改变,这种将现代科技与传统展厅相融合的展示形式,做到了一馆多用的功能建设,而这一特性也为乡村文化和历史传承提供了更好的平台。那么,下面…

keil创建单片机工程

一、创建工程 打开Keil uVision4,依次选择 Project—>New uVision4 Project,选择工程保存路径及填写工程名称,如下图 然后点“保存”。在Select a CPU Data Base File中选择"STC MCU Database",点 "OK"&am…

【muzzik 分享】关于 MKFramework 的设计想法

MKFramework是我个人维护持续了几年的项目(虽然公开只有一年左右),最开始由于自己从事QP类游戏开发,我很喜欢MVVM,于是想把他做成 MVVM 框架,在论坛第一个 MVVM 框架出来的时候,我的框架已经快完…

拉普拉斯金字塔的频谱分析

1. 基本分析 拉普拉斯金字塔分解,主要由以下步骤组成: 对输入图像 L0 进行低通滤波,其中常采用高斯滤波;对低通滤波后的图像进行 1/2 倍率的下采样,这里的下采样通常是指直接取偶行且偶列(以 0 开始计&am…

惯用Python的5个技巧(循环)

在这篇文章中,你将看到5种方法可以使你的python循环更习惯,运行得更快,内存效率更高。 在我看来,Python是计算机科学中最简单、最通用的语言之一。如果你正确地编写python代码,很难区分python代码和伪代码。但有时&…

免单优选电商模式:激发购买欲望的创新销售策略

免单优选电商模式,作为一种创新的销售策略,其核心在于通过价格优惠、渐进式激励和社交网络结合,有效刺激消费者的购买行为,进而推动销售业绩的快速增长。 一、合法合规,规避多层次奖励风险 该模式坚持合法合规的运营原…

【从浅学到熟知Linux】进程控制下篇=>进程程序替换与简易Shell实现(含替换原理、execve、execvp等接口详解)

🏠关于专栏:Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程等内容。 🎯每天努力一点点,技术变化看得见 文章目录 进程程序替换什么是程序替换及其原理替换函数execlexeclpexecleexecvexecvpexecvpeexecve 替换函数总结实现…

3D视觉引导麻袋拆垛破包 | 某大型化工厂

客户需求 此项目为大型化工厂,客户现场每日有大量麻袋拆垛破包需求,麻袋软包由于自身易变形、码放垛型不规则、运输后松散等情况,无法依靠机器人示教位置完成拆垛。客户遂引入3D视觉进行自动化改造。 工作流程: 3D视觉对紧密贴合…

公司文件加密软件有监视功能吗?

公司文件加密软件不仅提供了强大的文件加密能力,还具备了监视功能,确保文件在使用过程中的安全性。华企盾DSC数据防泄密系统中的监控功能体现在以下几个方面: 加密文件操作日志:记录所有加密文件的申请、审批、扫描加解密、自动备…

数据分析

数据分析流程 数据分析开发流程一般分为下面5个阶段,主要包含:数据采集、数据处理、数据建模、数据分析、数据可视化 数据采集: 数据通常来自于企业内部或外部,企业内部数据可以直接从系统获得,外部数据则需要购买&a…

【面试经典 150 | 链表】删除链表的倒数第 N 个结点

文章目录 写在前面Tag题目来源解题思路方法一:统计节点个数方法二:双指针 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本…

Python 爬虫:如何用 BeautifulSoup 爬取网页数据

在网络时代,数据是最宝贵的资源之一。而爬虫技术就是一种获取数据的重要手段。Python 作为一门高效、易学、易用的编程语言,自然成为了爬虫技术的首选语言之一。而 BeautifulSoup 则是 Python 中最常用的爬虫库之一,它能够帮助我们快速、简单…

【Java探索之旅】数组使用 初探JVM内存布局

🎥 屿小夏 : 个人主页 🔥个人专栏 : Java编程秘籍 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一、数组的使用1.1 元素访问1.2 数组遍历 二、JVM的内存布局🌤️全篇总结 …

Java面试题目和答案【终极篇】

Java面向对象有哪些特征,如何应用 ​ 面向对象编程是利用类和对象编程的一种思想。万物可归类,类是对于世界事物的高度抽象 ,不同的事物之间有不同的关系 ,一个类自身与外界的封装关系,一个父类和子类的继承关系, 一个类和多个类的多态关系。万物皆对象,对象是具体的世…

Linux 删除文件或文件夹命令(新手)

一、删除文件夹 rm -rf 路径/目录名 1 强制删除文件夹及其子文件。 二、删除文件/文件夹:rm 命令 rm 删除命令,它可以永久删除文件系统中指定的文件或目录。 rm [选项] 文件或目录 选项: -f:强制删除(force&am…

我们试用了6款最佳Appium替代工具,有些甚至比Appium更好

Appium是一款知名的自动化测试工具,用于在iOS、Android和Windows等移动平台上运行测试。就开源移动测试自动化工具而言,虽然替代品有限,但它们确实存在。我们找到了一些优秀的Appium替代品,它们也可以满足自动化测试要求&#xff…

聚道云软件连接器助力医疗器械有限公司打通金蝶云星辰与飞书

摘要 聚道云软件连接器成功将金蝶云星辰与飞书实现无缝对接,为某医疗器械有限公司解决采购订单、付款单同步、审批结果回传、报错推送等难题,实现数字化转型升级。 客户介绍 某医疗器械有限公司是一家集研发、生产、销售为一体的综合性医疗器械企业。…

BackTrader 中文文档(一)

原文:www.backtrader.com/ 主页 欢迎来到 backtrader! 原文:www.backtrader.com/ 一个功能丰富的 Python 框架,用于回测和交易 backtrader允许您专注于编写可重复使用的交易策略、指标和分析器,而不必花时间构建基础…

打一把王者的时间,学会web页面测试方法与测试用例编写

一、输入框 1、字符型输入框: (1)字符型输入框:英文全角、英文半角、数字、空或者空格、特殊字符“~!#¥%……&*?[]{}”特别要注意单引号和&符号。禁止直接输入特殊字符时,…