目录
1. 使用返回 this 的 setter 方法
2. 使用 Lombok 的 @Accessors 注解
3. 建造者模式 (Builder Pattern)
比较
链式设置参数(也称为链式调用或方法链)是一种编程风格,可以让代码更加简洁易读。在 Java 实体类中实现链式设置参数通常有以下方式:
1. 使用返回 this 的 setter 方法
public class User {
private String name;
private int age;
private String email;
// 链式 setter 方法
public User setName(String name) {
this.name = name;
return this;
}
public User setAge(int age) {
this.age = age;
return this;
}
public User setEmail(String email) {
this.email = email;
return this;
}
// 常规 getter 方法
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getEmail() {
return email;
}
}
使用示例:
User user = new User()
.setName("张三")
.setAge(25)
.setEmail("zhangsan@example.com");
2. 使用 Lombok 的 @Accessors 注解
如果你使用 Lombok 库,可以更简洁地实现链式调用:
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class User {
private String name;
private int age;
private String email;
}
使用方式与第一种相同:
User user = new User()
.setName("张三")
.setAge(25)
.setEmail("zhangsan@example.com");
3. 建造者模式 (Builder Pattern)
对于更复杂的对象创建,可以使用建造者模式:
public class User {
private final String name;
private final int age;
private final String email;
private User(Builder builder) {
this.name = builder.name;
this.age = builder.age;
this.email = builder.email;
}
public static class Builder {
private String name;
private int age;
private String email;
public Builder name(String name) {
this.name = name;
return this;
}
public Builder age(int age) {
this.age = age;
return this;
}
public Builder email(String email) {
this.email = email;
return this;
}
public User build() {
return new User(this);
}
}
// getter 方法
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getEmail() {
return email;
}
}
使用示例:
User user = new User.Builder()
.name("张三")
.age(25)
.email("zhangsan@example.com")
.build();
比较
- 直接链式 setter:简单直接,适合简单对象
- Lombok:代码最简洁,但需要引入依赖
- 建造者模式:最适合复杂对象的构建,可以确保对象创建时的不可变性和一致性
这篇博客到这里就接近尾声了,希望我的分享能给您带来一些启发和帮助,别忘了点赞、收藏。您的每一次互动、鼓励是我持续创作的动力!期待与您再次相遇,共同探索更广阔的世界!