@Data导致无参构造丢失

编程教程 > Java (12) 2025-04-07 09:55:44

概述

Java简单对象使用了@Data注解,前端请求报错:

JSON parse error: 
Cannot construct instance of `com.xxx.Student` 
(although at least one Creator exists): 
cannot deserialize from Object value (no delegate- or property-based Creator)

简单来说就是对象缺少了无参构造

检查原因

注意:正常情况下单使用@Data是会生成无参构造的,这个不用怀疑。

错误源码示例:

import jakarta.validation.constraints.NotEmpty;

import lombok.Data;
import lombok.NonNull;

@Data
public class Student {

    @NotEmpty
    String name;
    @NonNull
    Integer age;
    @NotEmpty
    String address;

}

晃眼一看,上面的代码没啥问题,仔细一看

@Data导致无参构造丢失_图示-a1c3f87f3390430986b35017d769ad38.png
无参构造没了,有参构造有一个(idea快捷键 CTRL+F12)

解决办法

再仔细看,字段注解用错了,验证非空的注解应该使用Java包的@NotNull 不是lobok包的@NonNull,修改注解后正常

修改后代码参考:

import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;


@Data
public class Student {

    @NotEmpty
    String name;
    @NotNull
    Integer age;
    @NotEmpty
    String address;

}

 

搞定。

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
概述Java简单对象使用了@Data注解,前端请求报错:JSON parse error: Cannot construct instance of `com.
Lombok插件安装@Data和@Getter与@Setter都是lombok插件的注解,用于简单对象的增强编译实现。maven pom引入文件<depende
概要说明在Lombok中,单独使用@Data 和@Builder会导致无参构造丢失。问题解析:单独使用@Data注解,是会生成无参构造方法的单独使用@Build
spring validate 验证List集合演示用类User/Addressimport lombok.Data; import javax.validation.constraint...
spring data redis设置缓存的过期时间,spring data redis更新缓存的过期时间
创建maven项目添加依赖方便开发,添加一些开发工具依赖,比如 lombok Swing UI开发创建Hello UI在src/main/java/包名下有件菜
Spring data-mongodb ID自增长注解实现,mongodb ID自增长
通过之前的一些文章spring boot 2.3 hibernate validate框架未引入-xqlee (blog.xqlee.com)Spring boot 参数分组校验-xqlee (...
Java编程中使用spring boot1.5.2框架整合spring data mongodb10.1,来使用mongodb数据库
Java编程中如何避免NullPointerException(空指针异常)
问题Caused by: java.sql.BatchUpdateException: Data truncation: Incorrect datetime value: '1955-05-0...
概述Timer/ScheduledThreadPoolExecutor都是是JDK提供的api Timer Demoimport lombok.extern.s
mybatis plus 逻辑删除使用说明全局逻辑值配置,application.properties# 逻辑已删除值(默认为 1) mybatis-plus.global-config.db...
前言引用之前的例子《Vert.x 4 Web REST CRUD接口应用》项目作为基础进行修改,创建一个自定义异常和异常拦截处理器。以实现对指定异常返回特殊数据
问题描述 spring boot 2.6.x 项目启动报错 The elements [xxx,xxx] were left unbound 细节日志就是spring boot...