后台新建空对象,类型为数字时,应该返回null/0,返回-1什么意思?为什么这么修改源码

Blade 未结 1 88
hyh170015
hyh170015 剑童 2024-04-30 11:53

一、该问题的重现步骤是什么?

1. 新建Vo对象,在返回数据时,后台数据为空,对象字段类型是Long/Integer等类型

二、你期待的结果是什么?实际看到的又是什么?

页面显示的应该是null或者0,为什么显示的是-1?你们这框架怎么想的?

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

我使用的应该是企业版吧,具体版本我不清楚,公司花钱买的系统,在windows系统

四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

为什么要这么设置?

image.png

1条回答
  • 2024-04-30 12:17

     1. 如果是null,则移动端、设备端在请求的时候如果判断不完善会有崩溃的情况出现,所以这不是默认选项

     2. 如果是0,更不可取。因为在java内数字为0是有意义的,比如Array、List等第一序列都是0,并不适合与空的定义

     3. 那么还有什么比较合适呢,那就可以参考java的indexOf方法,当查询不到的时候,java的这个方法会返回-1,那么结果就很明了了,java官方都返回-1,那么我们这里返回-1就没有任何问题。

     4. 如果你需要返回null,可以看这个的帖子:https://sns.bladex.cn/q-100.html

     5. 如果你需要返回0,我们目前不会做处理,如果后期java的序列号不是从0开始而是从1开始,并且indexOf找不到返回的也是0,那我们就会立马改成0。

     6. 商业版用户请使用授权qq邮箱注册并发帖,或者给我们发邮件(bladejava@qq.com)说明授权公司名,这样我们就可以给你标记成商业用户,否则后续是无法提问的。

    0 讨论(1)
提交回复