链式调用

 2024-05-29    0 comment    135 browse

java

在Java中,链式调用(Chaining)是一种常见的设计模式,它允许你在一个对象上连续调用多个方法,而无需在每次调用后都返回一个新的对象。这通常是通过在每个方法结束时返回this(即当前对象)来实现的。

不使用注解

public class Person {  
    private String name;  
    private int age;  
  
    // 构造方法  
    public Person(String name, int age) {  
        this.name = name;  
        this.age = age;  
    }  
  
    // setName方法,返回当前对象(this)以支持链式调用  
    public Person setName(String name) {  
        this.name = name;  
        return this;  
    }  
  
    // setAge方法,同样返回当前对象(this)  
    public Person setAge(int age) {  
        this.age = age;  
        return this;  
    }  
  
    // 其他方法...  
  
    // toString方法,用于打印Person对象的详细信息  
    @Override  
    public String toString() {  
        return "Person{" +  
                "name='" + name + '\'' +  
                ", age=" + age +  
                '}';  
    }  
  
    public static void main(String[] args) {  
        // 使用链式调用设置Person对象的属性  
        Person person = new Person("", 0)  
                .setName("Alice")  
                .setAge(30);  
  
        // 打印Person对象的详细信息  
        System.out.println(person);  
    }  
}

使用注解

import lombok.Accessors;  
import lombok.AllArgsConstructor;  
import lombok.Data;  
import lombok.NoArgsConstructor;  
  
@AllArgsConstructor  
@NoArgsConstructor  
@Data  
@Accessors(chain = true) // 开启链式调用  
class Student {  
    private Integer id;  
    private String studentName;  
    private String major;  
}  
  
public class Main {  
    public static void main(String[] args) {  
        // 使用链式调用创建并设置Student对象  
        Student student = new Student()  
                .setId(1)  
                .setStudentName("Alice")  
                .setMajor("Computer Science");  
  
        // 打印Student对象的详细信息  
        System.out.println(student);  
    }  
}