Java学习笔记 —— 链式编程学习笔记

news/2024/11/28 19:36:38/

Java学习笔记 —— 链式编程学习笔记

  • 前言
  • 介绍
  • 代码实例
    • lombok实现
    • 原生方式
  • 结束语

前言

链式编程大家可能有些熟悉也有些许陌生,我们今天来揭开这个神秘面纱。

介绍

链式编程的中心思想是通过:每次方法调用后都返回当前对象,非常不可思议吧,没想到还可以那么玩!

我们今天来学习一下使用Lombok 和原生的代码来实现链式编程

代码实例

lombok实现

/*** 使用lombok方式实现链式编程*/
@Data
@Accessors(chain = true)
@RequiredArgsConstructor(staticName = "builder")
public class Student {@NonNullprivate String name;@NonNullprivate int age;private String address;}

使用lombok仅仅使用三个注解即可

  1. @RequiredArgsConstructor 和 @NonNull 一般配套使用,应用在必须填写的参数值上
  2. @Accessors 是实现 链式的核心注解,作用是chain属性为true时,调用的方法返回当前对象

示例

        Student student = Student.builder("小张",15).setAddress("翻斗花园");

原生方式

以下使用链式方式模拟了一个建造者模式的代码示例

@Data
public class User {private String name;private String pwd;@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", password='" + pwd + '\'' +'}';}public static Builder builder(){return new Builder();}public static class Builder{private String name;private String pwd;public Builder setName(String name){this.name = this.name;return this;}public Builder setPassword(String pwd){this.pwd = pwd;return this;}/*** 构建User* @return*/public User build(){User user = new User();user.setName(this.name);user.setPWd(this.pwd);return user;}}
}

核心思想:在需要设置该实体类属性或其他功能项时,方法返回本身即可!

示例

        User user = User.builder().setName("小绿").setPwd("123123").build();

本文学习时参考本站文章:链式编程,该文章写的通俗易懂,大家也可以去阅读以下!

结束语

关于 Java学习笔记 —— 链式编程学习笔记 就讲到这里,对你有帮助的话!

  • 点赞
  • 收藏

谢谢你的观看!


http://www.ppmy.cn/news/4045.html

相关文章

电脑重装系统后重启电脑黑屏是怎么回事

电脑重装系统后重启电脑黑屏怎么回事?最近有用户反映自己在重装电脑系统后,开机出现了黑屏的现象,检查后发现硬件设备没有故障,那么是怎么回事呢?有可能是显示器不支持该显卡显示的分辨率或者是重装系统后的显卡驱动与…

【JavaScript】数据类型

文章目录数据类型基本类型(简单类型)1.数字类型(number)2.字符串(string)3.布尔类型(boolean)4.特殊类型undefinednull引用类型总结检查变量的数据类型NaN和isNaN一.NaN二.isNaN三.Number.isNaN数据类型 声明的任何一个变量的值,它的类型必须是下面的几种情况之一。…

网络工程师备考6章

6.1 OSI参考模型概述 计算机的整套理论是图灵提出来的,自此创办图灵奖(计算机类最高奖项)。科学远远比技术更重要。 OSI七层模型就是科学,就是理论,所以非常重要! 注:ISO是一个机构,OSI是一个协议:分别七层 6.2 OSI参考模型 注:在传输层中,什么是端到端,例如A,…

[附源码]Python计算机毕业设计Django青栞系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

paddle_gpu安装配置

paddle_gpu安装配置1.确认安装版本2. 安装相关文件2.1 下载与安装3.cuDNN下载及安装4.创建conda虚拟环境5.参考教程1.确认安装版本 操作系统:windows安装方式:condapython版本:python3.7CUDA版本:本人电脑版本【11.6.134】,低于此版本电脑都…

CS61A Homework 5

更好的阅读体验 Homework 5: Trees, Linked Lists hw05.zip Mid-Semester Feedback Q1: Mid-Semester Feedback As part of this week’s homework, please fill out the Mid-Semester Feedback form. This survey is designed to help us make short term adjustments to…

蓝牙款血氧仪单片机开发

本文为大家介绍便携式智能血氧仪的监测应用方案。血氧仪主要测量指标分别为脉率、血氧饱和度、灌注指数(PI)。血氧饱和度(oxygen saturation简写为SpO2)是临床医疗上重要的基础数据之一。血氧饱和度是指在全部血容量中被结合O2容量…

猿如意中【ndm】助你轻松管理你的 NPM包

目录 一、ndm 简介 1.1、下载 ndm-1.exe 版本(v1.2.0) 1.2、安装 1.3、版本迭代更新记录 1.3.1、ndm v0.1.4 已发布https://github.com/720kb/ndm/releases/tag/v0.1.4 1.3.2、ndm v1.0.0 发布,现已完全跨平台Windows、Mac、Linux 1.3.3、…