@Data注解

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

1. 引入依赖

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

可以在IDEA编译器中添加lombok插件,File -> Setting -> Plugins -> 搜索lombok
2. 添加注解

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
    private String name;
    private String address;
    private Integer age;
    private String hobbit;
    private String phone;
}

自动生成的相关方法

 

Person类自动生成的方法


3. 其他相关注解

  • @Data : 注在类上,提供类的get、set、equals、hashCode、toString等方法
  • @AllArgsConstructor :注在类上,提供类的全参构造
  • @NoArgsConstructor :注在类上,提供类的无参构造
  • @Setter :注在属性上,提供 set 方法
  • @Getter :注在属性上,提供 get 方法
  • @EqualsAndHashCode :注在类上,提供对应的 equals 和 hashCode 方法
  • @Log4j/@Slf4j :注在类上,提供对应的 Logger 对象,变量名为 log
### Java 中 `@Data` 注解的使用与解释 #### 什么是 `@Data` 注解? `@Data` 是 Lombok 库中的一个重要注解,用于简化 Java 类的开发过程。它通过自动生成常见的样板代码来减少开发者的工作量。具体来说,`@Data` 注解会为类生成 getter 和 setter 方法、`toString()` 方法、`equals()` 方法以及 `hashCode()` 方法[^4]。 #### 使用场景 当定义一个普通的 POJO(Plain Old Java Object)时,通常需要手动编写大量的 getter 和 setter 方法以及其他辅助方法。如果使用了 Lombok 的 `@Data` 注解,则可以省去这些繁琐的手动编码工作。这不仅提高了开发效率,还减少了因手写代码而可能引入的错误。 #### 如何使用 `@Data` 注解? 要使用 `@Data` 注解,首先需要在项目中引入 Lombok 库。可以通过 Maven 或 Gradle 来管理依赖项: 对于 Maven 用户,在项目的 `pom.xml` 文件中添加以下内容: ```xml <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> <!-- 版本号可能会更新 --> <scope>provided</scope> </dependency> ``` 对于 Gradle 用户,在 `build.gradle` 文件中添加如下配置: ```gradle implementation 'org.projectlombok:lombok:1.18.24' // 版本号同理可变 annotationProcessor 'org.projectlombok:lombok:1.18.24' ``` 接着可以在任何实体类上应用 `@Data` 注解。例如: ```java import lombok.Data; @Data public class User { private String name; private int age; } ``` 在这个例子中,Lombok 自动生成了 `name` 和 `age` 属性对应的 getter 和 setter 方法,同时还提供了 `toString()`, `equals(Object o)` 及 `hashCode()` 方法实现[^5]。 #### 注意事项 尽管 `@Data` 提供了许多便利功能,但在某些情况下需要注意潜在的风险。比如,由于其默认行为包括生成所有的 getter/setter 方法,因此可能导致无意间暴露敏感字段给外部访问者。在这种情形下,建议单独使用更细粒度的 Lombok 注解如 `@Getter` 或 `@Setter` 而不采用全局性的 `@Data`[^6]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值