今天前端突然问我,你的接口能不能给我返回个null?我有点懵,我心说:它没有数据不就是null吗?于是我迅速去看了下后台,这一看更懵了,返回了个{}。这是什么鬼?
由于时间比较紧急,我没有去深究,就想着先去实现,于是加了判空,当map != null && map.size()>0时,返回空。我信心满满的点了提交、构建。刚准备摸会儿鱼,就听到前端喊:你构建了吗?我一看,构建好了,点进去看详情,构建成功了。按理说,没问题啊,此时此刻我还没意识到是代码本身有问题。
确定构建没问题之后,我终于打算从代码入手了,先跑个单元测试看看,我故意跑了个错误的查询条件,就想看看查不到数据的时候会返回什么?返回了一个这玩意儿:{id=null,name=null,…}。我开始debug,好家伙根本就不会走我的判空代码,而且我注意到,虽然执行的sql没查到东西,但它返回的map可不为空,且size也不为0。map就是有就返回,没有就不返回,也就是说你什么都没查到,也会返回一个{}。
找到问题了,我这边给出的解决方法有点取巧,大佬们有更好的办法,打在评论区。
我是判断map的某一项,它的值是否为空?例如:如果查询没问题,查出来的id必然不为空,所以可以拿id来判断,这样就可以判断的很精准。
怎么让map返回null
最新推荐文章于 2025-01-09 21:46:48 发布
3470

被折叠的 条评论
为什么被折叠?



