美文网首页
实践之路《getter、setter方法失效解决》

实践之路《getter、setter方法失效解决》

作者: 菜根_ | 来源:发表于2019-02-24 16:30 被阅读0次
    今天同事做项目时候,用Postman测试接口,结果只有一个属性有值另一个为null,但是确实是传入了,仔细对照也没有发现拼写上的错误,这时候找到了我,我一开始以为传入错误参数所以没获取到,但是自己回到座位也写了一个Demo试了下,确实没有值,然后就开始谷歌什么问题,搜索Postman的json传参问题,但是怎么搜索,都没有想要的答案,就开始从新分析,前台传入参数后台接收参数,一共是分为两个步骤的,一个是通过json格式传入,第二部分就是后台接收到json字符串将字符串转换成对象并通过setter方法赋值,这样才得到完整的数据,既然postman没有问题,传入的参数也没有问题,那么为null只有setter方法赋值出问题了,而且他这个属性名也很特殊,是第一个字母小写,第二个字母大写,我就从谷歌搜索属性赋值相关资料,果然发现了原因。

    JavaBean的set和get规范:

    1.第二个字母为大写的属性名要区别对待。如果属性名的第二个字母是大写的,那么该属性名直接用作 getter/setter 方法中 get/set 的后部分,就是说大小写不变。
    2.属性是首字母大写,次字母小写是,你永远都找不到它的 getter/setter 方法的
    3.对于 boolean 类型属性的 getter 方法是 isXxx() 还是 getXxx() 就自己决定了,isXxx() 应该更接近于自然语言,更顺溜些
    image.png
    针对属性名的形式为第一个字母为小写,第二个字母为大写的情况,Lombok所生成的getter、setter错误。

    例如:
    String aBc;
    这个属性正确的getter、setter方法为:
    public void setaBc(String aBc){……
    public String getaBc(){……
    但是Lombok所生成getter、setter方法为:
    public void setABc(String aBc){……
    public String getABc(String aBc){……
    这样的结果会导致使用像Spring时会导致注入失败

    相关文章

      网友评论

          本文标题:实践之路《getter、setter方法失效解决》

          本文链接:https://www.haomeiwen.com/subject/cnhbyqtx.html