@Data使用引出lombok

在项目中开发,对于pojo中经常会使用@Data注解

@Entity
@Data
public class Cat {
    /**
     * 使用@Id指定主键
     *使用@GeneratedValue(strategy = GenerationType.AUTO)指定主键生成策略,mysql默认自增长
     */
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private  int id;
    private String name;
    private int age;
    @JSONField(format = "YYYY-MM-dd HH:mm:ss")
    private Date createTime;//创建时间
}

@Data注解:

包含注解为@ToString@EqualsAndHashCode, @Getter在所有领域,@Setter所有非final字段,以及@RequiredArgsConstructor。

简化代码,省的自己生成get(),set()方法,以及toString(),equals(),hashCode()方法。如果只需要get(),set()方法可以只使用 @Getter,@Setter注解。

这个注解来自于 lombok,lombok 能够减少大量的模板代码,减少了在使用@Data 注解时, 需要导入lombok.Data,下面列举下 lombok提供的注解:

@NonNull : 注解在参数上, 如果该类参数为 null , 就会报出异常,  throw new NullPointException(参数名)

@Cleanup : 注释在引用变量前, 自动回收资源 默认调用 close() 方法

@Getter/@Setter : 注解在类上, 为类提供读写属性

@Getter(lazy=true) :

@ToString : 注解在类上, 为类提供 toString() 方法

@EqualsAndHashCode : 注解在类上, 为类提供 equals() 和 hashCode() 方法

@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor : 注解在类上, 为类提供无参,有指定必须参数, 全参构造函数

@Data : 注解在类上, 为类提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法

@Value : 与@Data相对应的@Value, 两个annotation的主要区别就是如果变量不加@NonFinal ,@Value会给所有的弄成final的。当然如果是final的话,就没有set方法了。

@Builder : 注解在类上, 为类提供一个内部的 Builder

@SneakThrows :

@Synchronized : 注解在方法上, 为方法提供同步锁

@Log :

@Log4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象

@Slf4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象

@Cleanup("dispose") org.eclipse.swt.widgets.CoolBar bar = new CoolBar(parent, 0);
@Cleanup InputStream in = new FileInputStream(args[0]);
@Cleanup OutputStream out = new FileOutputStream(args[1]);

详情可以查看lombok官网

参考:

https://blog.youkuaiyun.com/zhou_p/article/details/78405539

### 解决Lombok @Data注解报错问题 在使用Lombok的`@Data`注解时,可能会遇到诸如“找不到get方法”或“符号未找到”的错误。以下是解决此类问题的完整方案: 1. **检查编译规则是否正确** 确保项目设置中启用了对Lombok的支持。具体操作包括打开项目设置并检查编译规则是否已勾选支持Lombok的功能[^1]。 2. **确认Lombok插件已安装** 在IDE(如IntelliJ IDEA或STS)中,检查是否已安装Lombok插件。如果未安装,请下载并安装Lombok插件。对于STS用户,可以参考以下步骤: - 下载Lombok.jar文件[^3]。 - 运行命令`java -jar lombok.jar`以启动安装向导。 - 确认IDE路径并点击“Install/Update”按钮完成安装。 - 检查STS配置文件(如`STS.ini`)中是否添加了`-javaagent`参数,例如: ```ini -javaagent:D:\softwares\sts-3.7.3.RELEASE\lombok.jar ``` 3. **验证依赖配置** 确保项目的构建工具(如Maven或Gradle)中正确引入了Lombok依赖。对于Maven项目,`pom.xml`文件应包含以下内容: ```xml <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>RELEASE</version> <scope>compile</scope> </dependency> ``` 对于Gradle项目,应在`build.gradle`中添加: ```gradle dependencies { compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' } ``` 4. **处理构造方法冲突** 如果同时使用了`@Data`和`@Builder`注解,可能导致默认无参构造方法丢失。这是因为`@Builder`生成的全参构造方法覆盖了`@Data`默认生成的无参构造方法[^4]。解决方案如下: - 添加显式的无参构造方法: ```java public MyClass() {} ``` - 或者仅使用`@AllArgsConstructor`和`@NoArgsConstructor`替代`@Data`中的构造方法生成逻辑。 5. **重启IDE并清理项目** 完成上述配置后,建议重启IDE并执行以下操作以确保更改生效: - 清理项目缓存(如`File -> Invalidate Caches / Restart`)。 - 重新编译项目。 --- ```java // 示例代码:正确使用@Data注解 import lombok.Data; @Data public class Example { private String name; private int age; } ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值