@Accessors 的三种用法的解释
@Accessors
@Accessors: 用于配置getter和setter方法的生成结果,下面介绍三个属性
fluent
默认为
false
。若设置为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
默认为
false
。若设置为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
用于生成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) {}
}
@Builder
package com.xing.model;
import lombok.Builder;
import lombok.Data;
import lombok.Singular;
import java.util.List;
@Data
@Builder
public class Person {
private String name;
@Builder.Default // 默认值:北京
private String city = "北京";
@Singular // 识别单词的复数
private List<String> interests;
@Singular("tag") // 不能使用识别复数的,需要用别名,否则会报错
private List<String> tagList;
}
class test {
public static void main(String[] args) {
Person person = Person.builder()
.name("张三")
.interest("1").interest("2")
.tag("sign 1").tag("sign 2")
.build();
System.out.println(person);
}
}
运行结果:
Person(name=张三, city=北京, interests=[1, 2], tagList=[sign 1, sign 2])
本文作者:笔兴洽谈室 哔哩哔哩:笔兴洽谈室 GitHub:StarJava1024 Gitee:StarJava1024
本文链接:https://www.cnblogs.com/CrayonXiaoxing/articles/17687688.html
原创文章仅用于学习,不得修改原作品,不得再创作。若本文侵犯某版权,请私信联系删除!如需转载,请私信!