Lombok

简介: Lombok

Lombok


lombok介绍

写项目时,尤其是在类进行类内部成员字段封装时,需要编写大量的get/set方法,这不仅使得我们类定义中充满了get和set方法,同时如果字段名称发生改变,又要挨个进行修改,甚至当字段变得很多时,构造方法的编写会非常麻烦

使用Lombok(小使用Lombok之后:

@Getter
@Setter
@AllArgsConstructor
public class Student {
    private Integer sid;
    private String name;
    private String sex;
}


Lombok是一种插件化注解API,是通过添加注解来实现的,然后在javac进行编译的时候,进行处理。

Java的编译过程可以分成三个阶段:

1f0b009f37b2b723fb2220a5ce219971.png

  1. 所有源文件会被解析成语法树。
  2. 调用注解处理器。如果注解处理器产生了新的源文件,新文件也要进行编译。
  3. 最后,语法树会被分析并转化成类文件。


实际上在上述的第二阶段,会执行*lombok.core.AnnotationProcessor*,它所做的工作就是我们上面所说的,修改语法树。


lombok使用

通过添加@Getter和@Setter来为当前类的所有字段生成get/set方法,可以添加到类或是字段上

注意静态字段不会生成,final字段无法生成set方法。

使用@Accessors来控制生成Getter和Setter的样式-方法访问权限

通过添加@ToString来为当前类生成预设的toString方法

通过添加@EqualsAndHashCode来快速生成比较和哈希值方法。

通过添加@AllArgsConstructor@NoArgsConstructor来快速生成全参构造和无参构造

添加@RequiredArgsConstructor来快速生成参数只包含final或被标记为@NonNull的成员字段

使用@Data能代表@Setter、@Getter、@RequiredArgsConstructor、@ToString、@EqualsAndHashCode全部注解

一旦使用@Data就不建议此类有继承关系,因为equal方法可能不符合预期结果(尤其是仅比较子类属性)。

使用@Value@Data类似,但是并不会生成setter并且成员属性都是final的。

使用@SneakyThrows来自动生成try-catch代码块。

使用@Cleanup作用与局部变量,在最后自动调用其close()方法(可以自由更换)

使用@Builder来快速生成建造者模式:

  1. 通过使用@Builder.Default来指定默认值。
  2. 通过使用@Builder.ObtainVia来指定默认值的获取方式。

uilder.ObtainVia`来指定默认值的获取方式。

相关文章
|
2月前
|
Java
lombok的使用
本文介绍了Lombok库的基本使用方法和常用注解,通过示例代码展示了如何使用Lombok简化Java对象的创建、属性访问、日志记录等编码工作,使代码更加简洁。
lombok的使用
|
2月前
|
IDE Java 编译器
lombok编译遇到“找不到符号的问题”
【9月更文挑战第18天】当使用 Lombok 遇到 “找不到符号” 的问题时,可能是由于 Lombok 未正确安装、编译器不支持、IDE 配置不当或项目构建工具配置错误。解决方法包括确认 Lombok 安装、编译器支持,配置 IDE 和检查构建工具配置。通过这些步骤通常可解决问题,若问题仍存在,建议检查项目配置和依赖,或查看日志获取更多信息。
669 2
|
3月前
|
IDE Java 开发工具
Java 开发神器 Lombok:告别冗余,拥抱优雅!
Java 开发神器 Lombok:告别冗余,拥抱优雅!
72 0
|
5月前
|
安全 IDE Java
使用MapStruct和Lombok简化代码
使用MapStruct和Lombok简化代码
170 2
|
5月前
|
IDE Java 程序员
Lombok使用方法和总结
Lombok使用方法和总结
|
4月前
|
Java
@SneakyThrows 是 Lombok 库中的一个注解
`@SneakyThrows` 是 Lombok 库中的一个注解,它可以让你在方法签名中省略异常声明,而不需要显式地使用 try-catch 块来处理这些异常。当你使用 `@SneakyThrows` 注解时,Lombok 会自动生成相应的 try-catch 代码,将异常封装成运行时异常(通常是 `RuntimeException` 或其子类)。 这个注解在某些情况下可以简化代码,但请注意,它可能会隐藏潜在的问题,因为异常被转换成了运行时异常,这可能导致调用者无法正确处理这些异常。 下面是一个使用 `@SneakyThrows` 的示例: ```java import lombok.S
294 0
|
5月前
|
Java Maven Python
技术笔记:Lombok介绍、使用方法和总结
技术笔记:Lombok介绍、使用方法和总结
72 0
|
6月前
|
IDE Java 数据库连接
Lombok注解大全
这些是Lombok中的一些常见注解,它们可以显著减少Java代码中的冗余代码,提高代码的可读性和可维护性。不过,在使用Lombok之前,请确保你的开发环境已经配置好支持Lombok,通常需要安装相应的插件或进行设置以使IDE(如Eclipse、IntelliJ IDEA)能够正确解析Lombok注解。
53 4
|
6月前
|
IDE Java 数据库连接
Lombok注解大全
这些是Lombok中的一些常见注解,它们可以显著减少Java代码中的冗余代码,提高代码的可读性和可维护性。不过,在使用Lombok之前,请确保你的开发环境已经配置好支持Lombok,通常需要安装相应的插件或进行设置以使IDE(如Eclipse、IntelliJ IDEA)能够正确解析Lombok注解。
95 2
|
6月前
|
IDE Java 开发工具
Lombok 详解:简化 Java 开发的神奇工具
Lombok 是一款 Java 工具,通过注解自动处理如 getter/setter、toString、equals 和 hashCode 等常见代码,减少样板代码。安装 Lombok 需要在 IDE(如 IntelliJ IDEA)中添加插件,并在 Maven 或 Gradle 项目中配置依赖。常用注解包括 @Getter/@Setter 生成访问器,@ToString 生成对象描述,@EqualsAndHashCode 生成比较方法,@NoArgsConstructor/@AllArgsConstructor 生成构造器,@Data 综合应用这些注解。
394 9
下一篇
无影云桌面