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。

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

原文地址:https://www.cnblogs.com/bien94/p/12433805.html