使用lombok 实现链式编程

简介: 链式编程就是可以通过方法. 的方式不断调用,其原理就是返回一个this对象,就是返回本身,达到链式效果

什么是链式编程

链式编程就是可以通过方法. 的方式不断调用,其原理就是返回一个this对象,就是返回本身,达到链式效果。

我们经常用的 StringBuffer 就是实现了链式的写法。

StringBuffer builder = new StringBuffer();
builder.append("hello ").append("world ").append("java");

这样使用起来是不是很爽,其实就是在设值完之后返回当前this对象。

StringBuffer#append()源码:

@Override
@HotSpotIntrinsicCandidate
public synchronized stringBuffer append(string str){
toStringCache = null; super.append(str); return this;

lombok 链式编程

引入依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.2</version>
</dependency>
复制代码

@Accessors(chain = true)

lombok 提供该方式写法的实现,只需要在Bean对象上加上一个 @Accessors(chain = true) 即可。

@Accessors(chain = true)
@Data
public class Student {
    private String name;
    private int age;
}
复制代码

通过观察可以看到set方法返回对象为自己,这样代码简洁多了 ,而且实现了链式编程。

Student 
Student0
 i getName0: String 
 h getAge0: int 
 setName ( String ): Student h setAge ( int ): Student 
 equals ( Object ): boolean TObject ? canEqual ( Object : boolean 
hashCode0: int 1ObjecttoString0: String tObject 
 name : String 
 age : int 

lombok 静态的链式编程

静态的链式编程 比 普通的链式编程 的好处:

  • 创建对象更简洁;
  • 可以在静态方法、静态代码块等中使用;
  • 对于必输字段,可以强制要求。
import lombok.*;
import lombok.experimental.Accessors;
@Accessors(chain = true)
@Data
@RequiredArgsConstructor(staticName = "of")
public class Student {
  @NonNull
  private String name;
  private int age;
}
复制代码

如下使用,这样不仅实现了链式编程,还实现了静态创建。

@Test
public void test1(){
    Student ss = Student.of("zhangsan").setAge(22);
    System.out.println(ss.getAge());
    System.out.println(ss.getName());
}
复制代码

builder模式的链式Bean

builder模式的链式Bean原理为:在bean里面创建一个 静态builder方法 和一个 静态内部Builder类 ,通过调用静态builder方法来创建 Builder类,然后通过 Builder类 中的 build方法直接创建一个Bean,具体如下:

@Data
public class StudentBean {
    private String name;
    private int age;
    public static Builder builder() {
            return new Builder();
    }
    public static class Builder{
            private String name;
            private int age;
            public Builder name(String name) {
                    this.name = name;
                    return this;
            }
            public Builder age(int age) {
                    this.age = age;
                    return this;
            }
            public StudentBean build() {
                    StudentBean studentBean = new StudentBean();
                    studentBean.setName(name);
                    studentBean.setAge(age);
                    return studentBean;
            }
    }
}
复制代码

使用写法:

StudentBean studentBean = StudentBean.builder().name("zhangsan").age(11).build();
复制代码

lombok 实现 builder模式的链式bean

这样就实现了一个builder模式的链式bean。其实用lombok就一个注解的事情。

import lombok.*;
@Builder
@Data
public class StudentBean {
  private String name;
  private int age;
}


相关文章
|
2月前
|
Java
lombok的使用
本文介绍了Lombok库的基本使用方法和常用注解,通过示例代码展示了如何使用Lombok简化Java对象的创建、属性访问、日志记录等编码工作,使代码更加简洁。
lombok的使用
|
2月前
|
IDE Java 编译器
lombok编译遇到“找不到符号的问题”
【9月更文挑战第18天】当使用 Lombok 遇到 “找不到符号” 的问题时,可能是由于 Lombok 未正确安装、编译器不支持、IDE 配置不当或项目构建工具配置错误。解决方法包括确认 Lombok 安装、编译器支持,配置 IDE 和检查构建工具配置。通过这些步骤通常可解决问题,若问题仍存在,建议检查项目配置和依赖,或查看日志获取更多信息。
600 2
|
3月前
|
IDE Java 开发工具
Java 开发神器 Lombok:告别冗余,拥抱优雅!
Java 开发神器 Lombok:告别冗余,拥抱优雅!
68 0
|
5月前
|
安全 IDE Java
使用MapStruct和Lombok简化代码
使用MapStruct和Lombok简化代码
164 2
|
5月前
|
IDE Java 程序员
Lombok使用方法和总结
Lombok使用方法和总结
|
4月前
|
Java
@SneakyThrows 是 Lombok 库中的一个注解
`@SneakyThrows` 是 Lombok 库中的一个注解,它可以让你在方法签名中省略异常声明,而不需要显式地使用 try-catch 块来处理这些异常。当你使用 `@SneakyThrows` 注解时,Lombok 会自动生成相应的 try-catch 代码,将异常封装成运行时异常(通常是 `RuntimeException` 或其子类)。 这个注解在某些情况下可以简化代码,但请注意,它可能会隐藏潜在的问题,因为异常被转换成了运行时异常,这可能导致调用者无法正确处理这些异常。 下面是一个使用 `@SneakyThrows` 的示例: ```java import lombok.S
284 0
|
5月前
|
Java Maven Python
技术笔记:Lombok介绍、使用方法和总结
技术笔记:Lombok介绍、使用方法和总结
70 0
|
6月前
|
IDE Java 数据库连接
Lombok注解大全
这些是Lombok中的一些常见注解,它们可以显著减少Java代码中的冗余代码,提高代码的可读性和可维护性。不过,在使用Lombok之前,请确保你的开发环境已经配置好支持Lombok,通常需要安装相应的插件或进行设置以使IDE(如Eclipse、IntelliJ IDEA)能够正确解析Lombok注解。
53 4
|
6月前
|
IDE Java 数据库连接
Lombok注解大全
这些是Lombok中的一些常见注解,它们可以显著减少Java代码中的冗余代码,提高代码的可读性和可维护性。不过,在使用Lombok之前,请确保你的开发环境已经配置好支持Lombok,通常需要安装相应的插件或进行设置以使IDE(如Eclipse、IntelliJ IDEA)能够正确解析Lombok注解。
94 2
|
6月前
|
IDE Java 开发工具
Lombok 详解:简化 Java 开发的神奇工具
Lombok 是一款 Java 工具,通过注解自动处理如 getter/setter、toString、equals 和 hashCode 等常见代码,减少样板代码。安装 Lombok 需要在 IDE(如 IntelliJ IDEA)中添加插件,并在 Maven 或 Gradle 项目中配置依赖。常用注解包括 @Getter/@Setter 生成访问器,@ToString 生成对象描述,@EqualsAndHashCode 生成比较方法,@NoArgsConstructor/@AllArgsConstructor 生成构造器,@Data 综合应用这些注解。
389 9