java之Lombok

Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法

pom依赖:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
   <version>1.18.2</version> </dependency>

下面只是介绍了几个常用的注解,更多的请参见https://projectlombok.org/features/index.html

@Getter/@Setter

可以作用在类上和属性上,放在类上,会对所有的非静态(non-static)属性生成Getter/Setter方法,放在属性上,会对该属性生成Getter/Setter方法。并可以指定Getter/Setter方法的访问级别。

@EqualsAndHashCode

默认情况下,会使用所有非瞬态(non-transient)和非静态(non-static)字段来生成equals和hascode方法,也可以指定具体使用哪些属性。

@ToString

生成toString方法,默认情况下,会输出类名、所有属性,属性会按照顺序输出,以逗号分割。

@NoArgsConstructor、@RequiredArgsConstructor、@AllArgsConstructor

无参构造器、部分参数构造器、全参构造器,当我们需要重载多个构造器的时候,Lombok就无能为力了。

@Data

@ToString, @EqualsAndHashCode, 所有属性的@Getter, 所有non-final属性的@Setter和@RequiredArgsConstructor的组合,通常情况下,我们使用这个注解就足够了

 

使用示例 (以下5个注解,可以只使用@Data注解代替):

复制代码
@Getter
@Setter
@ToString
@NoArgsConstructor
@EqualsAndHashCode
public class UserEntity {

    private String id;

    private String lastName;

    private String email;

    private Integer age;

}
复制代码

 

@Builder 

优雅的对属性赋值,对外保持private setter

复制代码
@Getter
@Builder(toBuilder = true)
public class XwjUser implements Serializable {

    private static final long serialVersionUID = 1L;

    private int id;

    private String message;

    private Date sendTime;

}
复制代码
复制代码
public static void main(String[] args) {
    // @Builder注解赋值新对象
    XwjUser user = XwjUser.builder().id(1).sendTime(new Date()).message("hahah").build();
    System.out.println(user.toString());

    // 修改实体,要求实体上添加@Builder(toBuilder=true)
    user = user.toBuilder().id(2).build();
    System.out.println(user.toString());
}
复制代码

注意:在使用@Builder(toBuilder=true)的时候,得配合@AllArgsConstructor一起使用

 

posted @   仅此而已-远方  阅读(1174)  评论(0)    收藏  举报
编辑推荐:
· 通过一个DEMO理解MCP(模型上下文协议)的生命周期
· MySQL下200GB大表备份,利用传输表空间解决停服发版表备份问题
· 记一次 .NET某固高运动卡测试 卡慢分析
· 微服务架构学习与思考:微服务拆分的原则
· 记一次 .NET某云HIS系统 CPU爆高分析
阅读排行:
· AI浏览器自动化实战
· 通过一个DEMO理解MCP(模型上下文协议)的生命周期
· C#/.NET/.NET Core技术前沿周刊 | 第 34 期(2025年4.7-4.13)
· Chat to MySQL 最佳实践:MCP Server 服务调用
· 解锁.NET 9性能优化黑科技:从内存管理到Web性能的最全指南
点击右上角即可分享
微信分享提示