关于基本数据类型与包装数据类型的使用标准
1) 所有的POJO类属性必须使用包装数据类型。
2) RPC方法的返回值和参数必须使用包装数据类型。
3) 所有的局部变量推荐使用基本数据类型。
说明:POJO类属性没有初值是提醒使用者在需要使用时,必须自己显式地进行赋值,任何NPE问题,或者入库检查,都由使用者来保证。
public class DemoDO { String str; Integer a; }
正例
数据库的查询结果可能是null,因为自动拆箱,用基本数据类型接收有NPE风险
反例
某业务的交易报表上显示成交总额涨跌情况,即正负x%,x为基本数据类型,调用的HSF服务,调用不成功时,返回的是默认值,页面显示:0%,这是不合理的,应该显示成中划线-。所以包装数据类型的null值,能够表示额外的信息,如:远程调用失败,异常退出
扩展说明
- 1)数据库到应用之间传递的是包装数据类型,即使定义的是基本的。在方法内运算,我推荐也是基本的。手册推荐的是防御氏编程。使用包装形式出现的可能npe问题需要调用者处理
- 2)序列化传输以对象形式来传输的
- 3)参数之间校验规则参考另一条