@Data 注解是 Lombok 库提供的一个便捷注解,用于简化 Java 类的代码编写工作。Lombok 是一个 Java 库,它通过注解的方式自动为类生成常规的 getter、setter、equals、hashCode 和 toString 方法,从而减少了模板代码的编写工作。

一、什么是 Lombok?

Lombok 是一个 Java 库,它通过使用注解来减少 Java 代码中的样板代码。Lombok 会在编译时自动生成这些代码,而不是在源码中直接编写。这意味着你在编写 Java 类时,可以省略大量的 getter、setter、构造函数等方法的实现。

二、注解作用

@Data 注解的主要作用是提高代码的简洁,使用这个注解可以省去代码中大量的get()、 set()、 toString()等方法。

三、注解用法

引入lombok
要使用 @Data 注解要先引入lombok,lombok是什么,它是一个工具类库,可以用简单的注解形式来简化代码,提高开发效率。

  • 在maven中添加依赖
		<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
            <version>1.18.4</version>
        </dependency>
  • 直接在相应的实体类上加上@Data注解即可;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
    private String name;
    private String address;
    private Integer age;
    private String hobbit;
    private String phone;
}

自动生成相关的方法:
在这里插入图片描述

四、常用的几个注解

  • @Data : 注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法。
  • @AllArgsConstructor : 注在类上,提供类的全参构造。
  • @NoArgsConstructor : 注在类上,提供类的无参构造。
  • @Setter : 注在属性上,提供 set 方法。
  • @Getter : 注在属性上,提供 get 方法。
  • @EqualsAndHashCode : 注在类上,提供对应的 equals 和 hashCode 方法。
  • @Log4j/@Slf4j : 注在类上,提供对应的 Logger 对象,变量名为 log。

五、注意事项

1.IDE 配置

确保你的 IDE 已经正确配置了 Lombok 插件,否则可能会出现无法识别 Lombok 注解的情况。

2.编译器支持

确保编译器支持 Lombok,例如在 Maven 或 Gradle 中添加 -parameters 参数以支持参数名称可见性。

3.不可变对象

如果你希望创建不可变的对象,可以使用 @Value 注解而不是 @Data 注解。

4.性能考虑

虽然 Lombok 使得代码更加简洁,但在某些性能敏感的场景下,手动编写 getter 和 setter 可能会更有优势

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐