关于基本数据类型与包装数据类型的使用标准

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)参数之间校验规则参考另一条

参考

https://www.zhihu.com/question/264430374/answer/280824636

阿里官方Java代码规范标准解析 - 基本数据类型与包装数据类型的使用标准相关推荐

  1. 阿里官方Java代码规范标准《阿里巴巴Java开发手册 终极版 v1.3.0》下载

    转载:https://www.cnblogs.com/han-1034683568/p/7680354.html

  2. 阿里Java代码规范

    代码规范 一.编程规约 (一) 命名风格 (二) 常量定义 (三) 代码格式 (四) OOP 规约 (五) 集合处理 (六) 并发处理 (七) 控制语句 (八) 注释规约 (九) 其它 二.异常日志 ...

  3. MyEclipse中阿里JAVA代码规范插件(P3C)的安装及使用

    JAVA代码规范插件(P3C)是阿里巴巴2017年10月14日在杭州云栖大会上首发的,使之前的阿里巴巴JAVA开发手册正式以插件形式公开走向业界.插件的相关信息及安装包都可以在GitHub(https ...

  4. java代码规范(转载整合)

    1. 标识符命名规范 1.1 概述 标识符的命名力求做到统一.达意和简洁. 1.1.1 统一 统一是指,对于同一个概念,在程序中用同一种表示方法,比如对于供应商,既可以用supplier,也可以用pr ...

  5. 阿里巴巴Java代码规范

    阿里巴巴Java代码规范 1.及时清理不再使用的代码段或配置信息. 2.不要在foreach循环里进行元素的remove/add操作,remove元素请使用Iterator方式. 3. POJO类中的 ...

  6. 解读阿里巴巴 Java 代码规范(2): 从代码处理等方面解读阿里巴巴 Java 代码规范...

    前言 2017 年阿里云栖大会,阿里发布了针对 Java 程序员的<阿里巴巴 Java 开发手册(终极版)>,这篇文档作为阿里数千位 Java 程序员的经验积累呈现给公众,并随之发布了适用 ...

  7. 写码如写诗,Android代码规范有多重要?附阿里《Android代码规范指南》PDF

    前言 所谓无规矩不成方圆.任何团队,规范都是怎么也绕不开的话题.特别是在我们编程行业,代码规范乃是团队的重中之重.我们有太多的理由去做规范,同时我们在做规范这件事上也有太多的痛点. 随着团队人数的增加 ...

  8. 文思海辉工作-Java代码规范(2019-08-20)

    (review代码,check代码需要注意的规范,需牢记!) 目录 1.前言 2.标识符命名规范 2.1统一 2.2简洁 2.3骆峰法则 3.代码格式 4.注释规范 1.前言 Java代码规范以SUN ...

  9. Java代码规范检查插件调研及总结

    代码规范工具对比 代码规范工具是什么 大家应该都有过写完代码后review的情况:用于提高编码质量,尽早的发现问题:节约开发时间和成本. 但review 这个过程往往要消耗 更多的开发资源. 所以就出 ...

最新文章

  1. GIF Movie Gear V4.2.3 破解版
  2. 上传图片和导出文件测试用例
  3. pfile文件怎么恢复格式_回收站清空的文件怎么恢复?值得收藏的恢复方法
  4. 【bzoj3555】[Ctsc2014]企鹅QQ 简单哈希
  5. 将Jersey与Spring整合
  6. 微信在计算机基础中的辅助作用,基于微信课后辅导在计算机基础教学中应用.doc...
  7. Qt工作笔记-profile中INSTALLS的使用
  8. 一道说难不难的js题目
  9. python3_04.循环函数
  10. 15. Django基础:cookies和sesseion
  11. 单页面应用(SPA)与多页面应用(MPA)的区别对比
  12. 公司用的非标普通自动化用单片机还是plc_合格电气自动化工程师必备十大技能...
  13. 女人总浑身都没有力气怎么回事儿
  14. 企业邮箱的反垃圾邮件功能是怎么实现的?
  15. 申请免费域名、配置域名以及https证书设置
  16. 【acwing 寒假每日一题(入门组)】day20 火星人
  17. JVM--基础--19.4--垃圾收集器--Parallel Scavenge
  18. Ink脚本语言学习笔记(二)
  19. 软件随想录:程序员部落酋长Joel谈软件(阮一峰译)-3
  20. 微信公众号 多台服务器,在多台 Linux 服务器上搭建 Pulsar 集群

热门文章

  1. jQuery CSS3中国象棋网页代码
  2. 《区块链原理、设计与应用》一3.4 资源共享
  3. (零代) MDD 开创低代码领行设计模式
  4. 例题6-13 古代象形符号(Ancient Messages,World Finals 2011,UVa 1103)
  5. linux lp0设备,P1108打印机插入Linux设备USB口后自动reset
  6. p50, p90, p99 (pct 50, pct 90, pct 99)指什么?
  7. IOS友盟 社会化分享 社会化iOS组件 分享集成
  8. 从匿名聊聊被封停,看微信小程序坚持的线下策略
  9. 解决因种子消失而无法继续BT下载的问题(转载自网易学院)
  10. moment基本使用