当前位置: 首页 > news >正文

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 方法会返回当前对象的引用,允许使用链式调用

        

http://www.lryc.cn/news/463029.html

相关文章:

  • 用 Git Stash 临时保存修改,轻松切换任务!
  • Android 下通过触发 SIGTRAP 信号实现反调试
  • 【MySQL】 表的增删操作
  • 新生入门季 | 学习生物信息分析,如何解决个人电脑算力不足的问题?
  • 20255 - 中医方剂学 - 考研 - 执业
  • 【Vue.js设计与实现】第三篇第9章:渲染器-简单Diff算法-阅读笔记
  • 服务器软件之Tomcat
  • Flutter包管理(三)
  • CGNS资料
  • 论文阅读(十六):Deep Residual Learning for Image Recognition
  • Dubbo 序列化方式
  • 如何替换OCP节点(二):使用 antman脚本 | OceanBase应用实践
  • 15.JVM垃圾收集算法
  • 软件工程:图书管理系统甘特图
  • 视频的编解码格式
  • 网络资源模板--Android Studio 实现简易新闻App
  • LabVIEW提高开发效率技巧----离线调试
  • 6N137S1取反电路图
  • Nullinux:一款针对Linux操作系统的安全检测工具
  • 学会这 5 个 AI 神器做字体设计,保证让你私单接到爆!
  • 《Vue3 踩坑》expose 和 defineExpose 暴露属性或方法注意事项
  • 10.13论文阅读
  • 六西格玛黑带项目:TBX-02无人机飞行稳定性提升——张驰咨询
  • git clone 国内镜像
  • 【服务器虚拟化】
  • 【RAG】aiops第一名方案-EasyRAG:自动网络运营的高效检索增强生成框架
  • 3款备受好评的电脑数据恢复软件,赶紧收藏以备不时之需
  • .net core 实现多线程方式有哪些
  • 《Linux从小白到高手》综合应用篇:深入理解Linux磁盘及IO优化
  • 【Linux】内存文件系统的I/O、重定向