代码简化开发(lombok)

注:使用先需先安装lombok插件

1. maven

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
            <scope>provided</scope>
        </dependency>

2. 常用注解API

注解标注位置注解描述属性属性描述
@Data类上所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。staticConstructor指定静态构造方法的方法名,默认不生成静态构造方法
@Getter属性上/类上

属性上:单独为该属性添加getter方法

类上:为该类所有属性添加getter方法

value设置访问级别
lazy设置赖加载,get值时才创建对象。使用在private final 修饰的属性上
onMethod在getter方法上添加注解,例如:onMethod = @__({@NonNull})
@Setter属性上/类上

属性上:单独为该属性添加setter方法

类上:为该类所有属性添加setter方法

value设置访问级别
onMethod在setterr方法上添加注解,例如:onMethod = @__({@NonNull})
onParam在setter方法参数上添加注解,例如:onParam= @__({@NonNull})
@EqualsAndHashCode类上

生成equals(Object other) 

和 hashCode()方法

exclude排除一些属性
of指定仅使用哪些属性
callSuper为true时调用父类的方法
doNotUseGetters为true时有getter方法时不用getter方法
onParam在方法参数上添加注解,例如:onParam= @__({@NonNull})
onlyExplicitlyIncluded为true时只包含被@EqualsAndHashCode.Include注解标识了的字段  
@EqualsAndHashCode.Exclude属性上类上加@EqualsAndHashCode后,可通过该注解排除或包含的字段  
@EqualsAndHashCode.Include属性上replaces 
@ToString类上生成toString方法includeFieldNames为false时,toString方法不显示属性名
exclude排除属性
of指定属性
callSuper为true时同时调用父类toString方法
doNotUseGetters为true时有getter方法时不调用getter方法
onlyExplicitlyIncluded为true时只包含被@EqualsAndHashCode.Include注解标识了的字段
@ToString.Exclude属性上类上加@EqualsAndHashCode后,可通过该注解排除或包含的字段  
@ToString.Include属性上name替换属性名称
rank顺序,大的在前面
@NoArgsConstructor类上添加无参构造,当没有有参构造时,无该注解也会生成无参构成staticName添加静态构造方法,并设置方法名
onConstructor在构造方法上添加注解,例如:onParam= @__({@NonNull})
access设置访问级别
force为true时final修饰属性设置默认值
@RequiredArgsConstructor类上有参构造,参数为带有 @NonNull注解的和以final修饰的未经初始化的字段staticName添加静态构造方法,并设置方法名
onConstructor设置访问级别
force为true时final修饰属性设置默认值
@AllArgsConstructor类上全参构造staticName添加静态构造方法,并设置方法名
onConstructor设置访问级别
force为true时final修饰属性设置默认值
@Builder类上生成Builder构建器,只是为类制造了一个创建者,所以我们还需要给类编写getter、setter方法等,可以和@Data 或 @Getter和@@Setter联用builderMethodName构建器方法名
buildMethodName构建方法名
builderClassName构建器类名
toBuilder为true生成toBuilder方法,用于实体对象转构造器
access设置访问级别
  
@Singular属性上同@Builder一起使用,针对集合属性的特殊处理,可以添加单个集合元素value添加单个集合元素的方法名
  
@CustomLog    
@NonNull属性上/参数上

属性上:

参数上:添加在构造方法或setter方法参数上,为该方法进行判空处理

  
@Cleanup局部变量上添加在流对象局部变量上,可自动关闭流read指定关流方法
@Generated类,属性,方法上标记这个类、字段、方法是自动生成的  
     
@SneakyThrows方法上方法体进行try{}catch{}value指定catch的异常
@Synchronized方法上方法体中添加同步代码块value指定同步的全局变量名
@val替换变量数据类型局部变量声明的类型,而不必编写实际类型。注解将从初始化程序表达式中推断类型。  
@var  
@Value类上等同@Data,就是不生成Setter方法staticConstructor指定静态构造方法的方法名,默认不生成静态构造方法
@With 类上,属性上添加with方法,必须要全参构造方法  
@Accessors类上,属性上用于配置getter和setter方法的生成结果fluent设置为true,则getter和setter方法的方法名都是基础属性名,且setter方法返回当前对象。
chain设置为true,则setter方法返回当前对象。
prefix用于生成getter和setter方法的字段名会忽视指定前缀(遵守驼峰命名)
@Delegate方法上,属性上会把这个属性对象的公有非静态方法合到当前类
有相同非静态方法的属性不可同时使用该注解在方法上
注在方法上则生成返回对象的非静态方法,无返回值方法不可使用
types指定合并的方法,值为含有要合并方法的接口
excludes排除合并的方法,值为含有要合并方法的接口
@ExtensionMethod类上

向现有类型“添加”方法,而无需创建新的派生类型

爆红但可编译

value扩展方法的类
suppressBaseMethods支持基础方法,默认true
@FieldDefaults类上设置属性缺省的修饰符。level级别
makeFinal是否Final修饰
@FieldNameConstants类上生成属性名常量level 
asEnum为true时生成枚举,默认为常量类
innerTypeName内部常量类名
onlyExplicitlyIncluded为true时只包含被@EqualsAndHashCode.Include注解标识了的字段
@FieldNameConstants.Include属性上包含的属性  
@FieldNameConstants.Exclude属性上排除的属性  
@Helper    
@NonFinal属性、方法、参数、本地变量、注解、接口、类、枚举用来取消因使用@FieldDefaults和@Value而加上的final修饰符  
@PackagePrivate    
@SuperBuilder类上支持继承父类的子类生成Builder构建器  
@Tolerate方法上,构成其实实现冲突兼容  
@UtilityClass类上工具类,设置所有方法为静态  
@CommonsLog类上用于生成日志对象  
@Flogger  
@Log  
@JBossLog  
@Log4j  
@Log4j2  
@Slf4j  
@XSlf4j  

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郑重其事,鹏程万里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值