lombok中的Accessors注解

本文介绍了如何通过@Accessors注解在Java中实现链式调用(setter返回实例)和不同设置(chain、fluent和prefix)。展示了三种使用场景及代码示例,帮助理解如何优化属性操作并提升代码可读性。

默认情况下,Data注解生成的set方法没有返回值的。

使用Accessors注解其实就是指定set和get方法的生成方式

1、@Accessors(chain=true)

set方法返回对象,并且可以进行链式调用

@Data
@Accessors(chain = true)
public class User {
   
   

    private String id;
    private String Name;
    private String password;

    public static void main(String[] args) {
   
   
        User user = new User();
 
`@Accessors` 是 Lombok中的一个注解,主要用于自定义生成的访问器(getter 和 setter)方法的风格,以提高代码的可读性和简洁性。以下是关于它的使用方法和作用的详细说明: ### 作用 `@Accessors` 注解共有三个属性,分别是 `fluent`、`chain` 和 `prefix`,它们的作用如下: - **fluent 属性**:当设置为 `true` 时,getter 和 setter 方法的方法名都是基础属性名,且 setter 方法返回当前对象,实现方法的链式调用,使代码更加简洁易读。例如: ```java import lombok.Data; import lombok.experimental.Accessors; @Data @Accessors(fluent = true) public class Person { private Long id; private String name; // 生成的getter和setter方法如下,方法体略 public Long id() {} public Person id(Long id) {} public String name() {} public Person name(String name) {} } ``` 在上述代码中,`id()` 和 `name()` 是 getter 方法,`id(Long id)` 和 `name(String name)` 是 setter 方法,并且 setter 方法返回 `Person` 对象本身,支持链式调用,如 `Person person = new Person().id(1L).name("John");` [^5]。 - **chain 属性**:设置为 `true` 时,setter 方法返回当前对象,同样可以实现链式调用。与 `fluent` 属性不同的是,getter 和 setter 方法仍然遵循传统的命名规则,即 getter 方法以 `get` 开头,setter 方法以 `set` 开头。例如: ```java import lombok.Data; import lombok.experimental.Accessors; @Data @Accessors(chain = true) public class Person { private Long id; private String name; // 生成的setter方法如下,方法体略 public Person setId(Long id) {} public Person setName(String name) {} } ``` 可以使用链式调用 `Person person = new Person().setId(1L).setName("John");` [^3][^5]。 - **prefix 属性**:用于指定生成 getter 和 setter 方法时需要忽略的字段前缀,遵循驼峰命名规则。例如: ```java import lombok.Data; import lombok.experimental.Accessors; @Data @Accessors(prefix = "p") class Person { private Long pId; private String pName; // 生成的getter和setter方法如下,方法体略 public Long getId() {} public void setId(Long id) {} public String getName() {} public void setName(String name) {} } ``` 在上述代码中,生成的 getter 和 setter 方法会忽略字段名的 `p` 前缀 [^5]。 ### 使用方法 要使用 `@Accessors` 注解,需要按照以下步骤进行: 1. **添加 Lombok 依赖**:如果你使用的是 Maven 项目,可以在 `pom.xml` 文件中添加以下依赖: ```xml <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>版本号</version> <scope>provided</scope> </dependency> ``` 2. **在类上使用注解**:在需要生成访问器方法的类上添加 `@Accessors` 注解,并根据需要设置相应的属性。例如: ```java import lombok.Data; import lombok.experimental.Accessors; @Data @Accessors(chain = true) public class User { private Long id; private String name; } ``` 这样,Lombok 会自动为 `User` 类生成链式调用的 setter 方法 [^3][^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值