• JavaBean命名不规范导致数据导出丢失


      今天遇到同事反馈,在调用异步接口导出数据到excel模板后发现生成的文档内容缺少某些数据;刚开始还以为是逻辑流程或者模板的问题,后来结合日志和模板分析,发现是JSON数据中的key值发生了变化,与模板的属性名称不一致了,这样就导致部分数据不能成功写入文档;也就是说调用方在传递数据时已经将key的名称修改了,从而导致数据丢失。后来,查看了一些,Java对象中的属性命名需要符合JavaBean命名规范,否则会出现一些意想不到的事情。

      (1)JavaBean规范基本情况

    • JavaBean类必须是一个公共类
    • JavaBean类必须有一个空的构造函数,即类中必须有一个无参的public构造方法
    • JavaBean类不应有公共实例变量,类变量都为private
    • 属性应该由一组读写方法(getXxx 和 setXxx)来访问,一般是IDE(Eclipse、IntelliJ IDEA)为属性生成getter/setter 方法;JavaBean属性一般以小写字母开头, 使用驼峰命名格式,相应的getter/setter方法是get/set+首字母大写的属性名,例如:属性名为name,其对应的getter/setter方法是getName/setName。

      (2)JavaBean规范特殊情况

    • 字段类型为boolean类型,此时不应该叫个getter方法,而是is方法,例如:字段名为required,其对应的getter/setter方法时把isRequired/setRequired。
    • 字段名称的第二个字母是大写的, 那么该字段名称直接用作getter/setter方法中get/set的后部分,也就是说大小写不变,例如字段名称为iPhone,方法是getiPhone/setiPhone。
    • 字段名称前两个字母都是大写(专有名词和缩略词等),那么该字段名称直接接在getter/setter方法中get/set的后部分,例如字段名称为IP,方法是getIP/setIP;字段名称为HTML,方法是getHTML/setHTML。

      其余的情况都会出现问题,所以在给字段命名时一定要谨记规范规则,以免带来不必要的坑。

  • 相关阅读:
    分离 附加 还原
    sql sever 数据表
    正则矩阵
    路由vue-router基础
    vue理解$nextTick
    vue组件
    vue事件处理
    vue列表渲染
    vue条件渲染
    vue class与style绑定
  • 原文地址:https://www.cnblogs.com/bien94/p/12433805.html
Copyright © 2020-2023  润新知