在传输对象中,属性使用包装类型还是基础类型?
在你不知道的情况下,前端传给后端的数据会有一些变化。
如果在 idea 中使用了“阿里编码规约”的插件,那么插件中会有如下提示信息。
关于基本数据类型与包装数据类型的使用标准如下:
1) 所有的POJO类属性必须使用包装数据类型。
2) RPC方法的返回值和参数必须使用包装数据类型。
3) 所有的局部变量推荐使用基本数据类型。
说明:POJO类属性没有初值是提醒使用者在需要使用时,必须自己显式地进行赋值,任何NPE问题,或者入库检查,都由使用者来保证。
以下是实际使用中会出现的情况
开发环境:
- Postman
- IDEA
以下用 POJO 中属性 id 举例
- 当 ID 为 int 时,如下:
/** * 用户实体 */ @EqualsAndHashCode(callSuper = true) @Data public class UserDTO extends Page { /** * 用户ID */ private int id; ...... }
- 当 ID 为 Integer 时
/** * 用户实体 */ @EqualsAndHashCode(callSuper = true) @Data public class UserDTO extends Page { /** * 用户ID */ private Integer id; ...... }
3.postman 传输数据的方式为以下几种
1)不传id的情况:
{ "size": 2, "current": 1 }
2)id 为 null 的情况:
{ "size": 2, "current": 1, "id": null }
3)id 为空字符串的情况:
{ "size": 2, "current": 1, "id": "" }
4)id 为 0 的情况:
{ "size": 2, "current": 1, "id": 0 }
以下是前端将 id 的值传至后端时,后端获取 id 值对照表
传输值 | int | Integer | |
---|---|---|---|
不传 | 0 | null | |
null | 0 | null | |
"" | 0 | null | |
0 | 0 | 0 |
其他基础类型和包装类基本类似,比如 double 与 Double 的对照表如下:
传输值 | double | Double | |
---|---|---|---|
不传 | 0.0 | null | |
null | 0.0 | null | |
"" | 0.0 | null | |
0 | 0.0 | 0.0 |
从实际使用情况可以看出,当前端不传值时,或者传 null时,或者传空字符串("")时,基础类型都会有值,这可能在后续开发的业务逻辑中会有干扰,同时也容易有异常出现。特别是在需要计算数值的时候,更容易出现业务逻辑的问题。
所以,如规范中所说,POJO类属性最好使用包装数据类型,可以减少开发过程中异常情况的出现,也可以防止 BUG 的出现。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里云架构师疯了!想成为程序员里最会带货的男人
话说网红主播带货早已经稀松平常但是你们见过程序员带货吗?今天,就为你介绍一位真·重量级主播 他是阿里云视频云团队的产品架构师士稚他也是最近风靡“猿”艺圈的网红主播小胖他动可一人分饰两角演绎经典武侠传奇他静可见客户盘需求拉团队写方案解BUG 以前的他超燃连续3年春节不回家在客户那驻场通宵1个月只为护航世界杯直播流畅客户需要时准会第一时间出现carry全场坚信拯救世界的不一定是超人也可能是程序员所以日夜搬砖,连陪老婆产检都顾不上 然而最近他有了新的事业那就是立志成为“程序员界最会带货的男人”不美颜无特效保证不欺骗人良心货靠谱坚决不翻车发扬分享精神推荐自用爆品让工程师不再迷路带业务稳稳上高速 所有程序员准备好了吗3,2,1小胖带货首秀视频来咯 [](http://cloud.video.taobao.com/play/u/2311856963/p
- 下一篇
拼不过 GO?阿里如何重塑云上的 Java
阿里妹导读:Java 诞生于20年前,拥有大量优秀的企业级框架,践行 OOP 理念,更多体现的是严谨以及在长时间运行条件下的稳定性和高性能。反观如今,在要求快速迭代交付的云场景下,语言的简单性似乎成了首要的要求,而传统的 Java 语言显得有一些过于重量了。今天,阿里 JVM 团队技术专家郁磊(花名:梁希)分享 JVM 团队是如何面对和处理集团巨大的业务规模和复杂的业务场景的。 音乐无国界,但是音乐人有国界。 云原生亦如此。虽没有限定的编程语言,但应用所使用的编程语言已经决定了应用部署运行的行为。 ElasticHeap Java 常因为耗资源而受诟病,其中最显著一点就是 Heap 对内存的占用,即便没有请求在处理也没有对象分配,进程仍然会保留完整的堆内存空间,保障 GC 进行分配内存和操作内存的快速敏捷。 AJDK ZenGC/ElasticHeap 双十一全面支持核心链路上百应用和数十万实例。 JDK12 开始支持固定时间的触发 concurrent mark 并在 remark 中收缩 Java 堆归还内存的功能,然而并未解决在 stw 中增加暂停时间的问题,因此无法在每次 yo...
相关文章
文章评论
共有0条评论来说两句吧...