关于java:阿里Java规范强制所有的-POJO-类属性必须使用包装数据类型

32次阅读

共计 744 个字符,预计需要花费 2 分钟才能阅读完成。

在 Java 开发手册中有这一条:

咱们晓得根本类型和包装类型有很多不同点:

  • 封装类型能够调用各种办法,而根本类型没有
  • 封装类型申明字段之后能够不设置默认值,而根本类型须要初始化默认值。比方 int 默认值为 0,boolean 默认值为 false。

为什么要有这种规定

个别 dao 层会有固定的增删改查办法,别离是:

  • selectByPrimaryKey
  • updateByPrimaryKey
  • insertSelective
  • updateByPrimaryKeySelective

selectByPrimaryKey

在调用查询方法 selectByPrimaryKey, 字段 Integer a 原本是 null,然而因为设置成了 int 类型,Java 会主动初始化默认值,结果显示默认值 0。查问后果和数据库不匹配。原本要插入 null,反而插入了 0,导致数据增加谬误。

updateByPrimaryKeySelective

在调用更新的办法,这里是调用 updateByPrimaryKeySelective 选择性更新字段,有值才更新,没有值就不更新,更新字段 b,然而因为字段 a 是 int 类型,在创建对象时,a 设置成了默认值 0,误将为 null 的 a 设置成了 0。insertSelective 办法也是同理。

参数传输

在 springmvc 接收数据,或者应用 RPC 办法传输数据,参数原本是没有赋值,然而 SpringMvc 或者 RPC 都会初始化默认值,然而传输的数据和须要传输的数据值不统一。

总结

所有的 POJO 必须设置封装类型,这是因为数据为 null 的状况下,根本类型会有默认值,无论是在增加、批改和查问的时候,都会导致数据和理论要批改的数据不统一。这一点还是须要多多留神。

参考

  • Java 开发手册(嵩山版).pdf

如果感觉文章对你有帮忙的话,请点个赞吧!

正文完
 0