lombok @Accessors用法

    今天在网上看到一个entity实体类的代码是如下这样的:

User user = new User()

.setId(1L)

.setUsername("zhangsan")

.setSex(1)

.setPassword("abc123")

.setCreateTime(LocalDateTime.now())

.setBirthday(LocalDate.of(1999, 9, 27))

.setConfig("[{\"field1\":\"Test Field1\",\"field2\":500}]");

一个User实体类对象后面调用了许多个set方法,这样写感觉比每次调用都在前面加上user来得更加简洁,于是我去网上找了一下,发现这种写法要归功于Accessors注解。

Accessor的中文含义是存取器,@Accessors用于配置getter和setter方法的生成结果,下面介绍三个属性

fluent

fluent的中文含义是流畅的,设置为true,则getter和setter方法的方法名都是基础属性名,且setter方法返回当前对象。如下

@Data

@Accessors(fluent = true)

public class User {

    private Long id;

    private String name;

    // 生成的getter和setter方法如下,方法体略

    public Long id() {}

    public User id(Long id) {}

    public String name() {}

    public User name(String name) {}

}

chain

chain的中文含义是链式的,设置为true,则setter方法返回当前对象。如下

@Data

@Accessors(chain = true)

public class User {

    private Long id;

    private String name;


    // 生成的setter方法如下,方法体略

    public User setId(Long id) {}

    public User setName(String name) {}

}


prefix

prefix的中文含义是前缀,用于生成getter和setter方法的字段名会忽视指定前缀(遵守驼峰命名)。如下

@Data

@Accessors(prefix = "p")

class User {

private Long pId;

private String pName;

// 生成的getter和setter方法如下,方法体略

public Long getId() {}

public void setId(Long id) {}

public String getName() {}

public void setName(String name) {}

}

参考文章:https://blog.csdn.net/weixin_38229356/article/details/82937420

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容