Hefery 的个人网站

Hefery's Personal Website

Contact:hefery@126.com
  menu
73 文章
0 浏览
1 当前访客
ღゝ◡╹)ノ❤️

项目中关于NULL的处理

为了避免空指针调用,我们经常使用if (obj != null),导致项目存在大量判空代码,繁杂而丑陋。这也是基于保护程序的本能。怎样规避这个问题呢?

判空前,先分清楚:

  • null:有效有意义的返回值
  • null:无效有问题的返回值

有效有意义的null

null 作为一个合理的值(缺考是 null,零分是 0),去查询数据库时,null 表达了“空”的概念

  1. 返回类型为 collections,返回结果是空,可以返回空的collections(empty list)
  2. 返回类型是 POJO,就使用空参构造返回一个空对象(new obj()),看业务决定

无效有问题的null

null作为一个不合理的参数,就应该明确地中断程序,并抛出相关异常信息

比如:user_id 作为一个必传的参数,但是传过来一个 null,就不应该了

在 MySQL 中,null和空值有着不一样的意义

  • null 需要额外的空间来记录 ta 是 null length(null) --null; length('') --0; length('123') --3
  • 查询:查 null 用is null;查''!=

使用 select count(*) 查询会把 null 也算进去


标题:项目中关于NULL的处理
作者:Hefery
地址:http://hefery.icu/articles/2022/04/08/1649404081461.html