2018-05-22 POJO中属性使用包装类型

ALIbaba的开发手册中有一段强制要求pojo属性使用包装类

关于基本数据类型与包装数据类型的使用标准如下: 
1) 【强制】所有的POJO类属性必须使用包装数据类型。 
2) 【强制】RPC方法的返回值和参数必须使用包装数据类型。 
3) 【推荐】所有的局部变量使用基本数据类型。 
    
说明:POJO类属性没有初值是提醒使用者在需要使用时,必须自己显式地进行赋值,任何NPE问题,或者入库检查,都由使用者来保证。 
     正例:数据库的查询结果可能是null,因为自动拆箱,用基本数据类型接收有NPE风险。
     反例:比如显示成交总额涨跌情况,即正负x%,x为基本数据类型,调用的RPC服务,调用不成功时,返回的是默认值,页面显示:0%,
          这是不合理的,应该显示成中划线-。所以包装数据类型的null值,能够表示额外的信息,如:远程调用失败,异常退出。

为什么要在这么设计呢
举几个例子:
(1)所有的sql使用的默认类型都是null,如果你把POJO中的映射属性类型写为基本类型,当查找不到记录的时候,返回null赋给基本类型就会出错 ;

(2)包装类型都可以相应的转化为基本类型,如果你设置为基本类型比如int的话,它默认初始化为0,但0本身就代表着一种含义,如果为null的话,既好理解,也可以方便开发人员转化!而且很多xml配置中默认都是null。

(3)简单来说就是我们如果自定义了一个Student类,其中有一个属性是成绩score,如果用Integer而不用int定义,一次考试,学生可能没考,值是null,也可能考了,但考了0分,值是0,这两个表达的状态明显不一样.

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,440评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,519评论 18 399
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 30,149评论 8 265
  • 岁月是无情的刀 刻画着树的年轮 刻画着眼角的纹 转眼儿时的梦已逐渐远行 也曾为圆梦独自旅行 渐渐的梦已越走越远 而...
    我叫吕瑞阅读 408评论 0 0
  • 这两天高考分数出来了,一个女生最近打电话问我关于她弟填志愿的事。 聊着聊着,我们探讨起梦想,我想了想说,我好像没有...
    smile石迈阅读 722评论 1 1

友情链接更多精彩内容