lombok首字母小写造成传参无法接受问题

前言

在使用lombok插件开发中,用到了首字母小写,第二个字母大写参数,造成接收参数为空问题

问题

1、定义一个实体类

kotlin 复制代码
@Data
public class User {

    private List<Hello> region;

    @Data
    static class Hello {


        private Float xPosition;


        private Float yPosition;
    }
}

2、 实现一个接口

typescript 复制代码
@RestController
public class IndexController {


    @GetMapping("/index")
    public String index() {
        return "success";
    }


    @PostMapping("/hello")
    public String hello(@RequestBody User user) {
        return "success";
    }
}

访问接口参数,这个时候,发现xPositionyPosition接收为空

原因在于lombok插件默认生成的get、set方法为

导致参数接收为空

解决方法

1、 使用@JsonProperty注解

kotlin 复制代码
@Data
public class User {

    private List<Hello> region;

    @Data
    static class Hello {


        @JsonProperty("xPosition")
        private Float xPosition;


        @JsonProperty("yPosition")
        private Float yPosition;
    }
}

接收参数正常

2、使用编译器自带生成的get、set方法

kotlin 复制代码
@Data
public class User {

    private List<Hello> region;

    //    @Data
    static class Hello {


        //        @JsonProperty("xPosition")
        private Float xPosition;


        //        @JsonProperty("yPosition")
        private Float yPosition;

        public Float getxPosition() {
            return xPosition;
        }

        public void setxPosition(Float xPosition) {
            this.xPosition = xPosition;
        }

        public Float getyPosition() {
            return yPosition;
        }

        public void setyPosition(Float yPosition) {
            this.yPosition = yPosition;
        }
    }
}

总结

使用lombok插件时注意这个问题就行了,这个本身就是一个很强大的插件,能节省很多代码

相关推荐
带刺的坐椅36 分钟前
老码农教你 Solon Web Context-Path 的两种配置方式
java·nginx·tomcat·web·solon
ZZHow10241 小时前
Java项目-苍穹外卖_Day2
java·spring boot·web
Cisyam1 小时前
使用Bright Data API轻松构建LinkedIn职位数据采集系统
后端
float_六七1 小时前
Spring Boot 3为何强制要求Java 17?
java·spring boot·后端
叫我阿柒啊1 小时前
从Java全栈到前端框架的深度探索
java·微服务·typescript·vue3·springboot·前端开发·全栈开发
bobz9651 小时前
ovs arp
后端
_風箏1 小时前
SpringBoot【集成ElasticSearch 01】2种方式的高级客户端 RestHighLevelClient 使用(依赖+配置+客户端API测试源码
后端
用户21411832636021 小时前
dify案例分享-零基础上手 Dify TTS 插件!从开发到部署免费文本转语音,测试 + 打包教程全有
后端
架构师沉默2 小时前
Java 开发者别忽略 return!这 11 种写法你写对了吗?
java·后端·架构
EndingCoder2 小时前
React 19 与 Next.js:利用最新 React 功能
前端·javascript·后端·react.js·前端框架·全栈·next.js