1、说明
POJO 类属性没有初值是提醒使用者在需要使用时,必须自己显式地进行赋值,任何NPE(NullPointerException,空指针异常) 问题,或者入库检查,都由使用者来保证。
2、举例说明
正例:
(1)所有的sql使用的默认类型都是null,如果你把POJO中的映射属性类型写为基本类型,当查找不到记录的时候,返回null赋给基本类型就会出错 ;
(2)包装类型都可以相应的转化为基本类型,如果你设置为基本类型比如int的话,它默认初始化为0,但0本身就代表着一种含义,如果为null的话,既好理解,也可以方便开发人员转化!而且很多xml配置中默认都是null。
(3)简单来说就是我们如果自定义了一个Student类,其中有一个属性是成绩score,如果用Integer而不用int定义,一次考试,学生可能没考,值是null,也可能考了,但考了0分,值是0,这两个表达的状态明显不一样.
反例:
(1)比如显示成交总额涨跌情况,即正负 x%,x 为基本数据类型,调用的 RPC 服务,调用不成功时,返回的是默认值,页面显示:0%,这是不合理的,应该显示成中划线-。所以包装数据类型的 null 值,能够表示额外的信息,如:远程调用失败,异常退出。
(2)映射主键的话,应该使用包装类,但是如果是一般的字段,用包装类未必方便是否有必要在映射普通字段的时候也使用包装类? 如果用的话,那么在使用POJO的时候会比较麻烦,还需要考虑null的问题。
个人建议全部用包装数据类型,避免实际编程过程遇到的各种奇葩问题,但需要注意对空值的考虑。