你还在使用if来判断是否实体类或者某个属性为空吗?教你使用Assert.notNull()[断言]

简介: 你还在使用if来判断是否实体类或者某个属性为空吗?教你使用Assert.notNull()[断言]

你还在使用if来判断是否实体类或者某个属性为空吗?教你使用Assert.notNull()[断言]


一、前言

最近在阅读公司项目的代码时,看到了一个工具类:org.springframework.util下的方法很多很好用,今天带大家一起了解一下这个工具类的**Assert.notNull()**方法,来告别if判断实体类是否为null和某个属性是否为null。

二、方法展示

import org.springframework.util.Assert;
public class AssertTest {
    public static void main(String[] args) {
        //这里一般为请求mapper.xml进行查询数据库,数据库返回为空
        User user = null;
       Assert.notNull(user,"实体类user为空");
        //这里我们演示实体类的某个属性判断是否为空
        User user1 = new User();
        Assert.notNull(user1.getName(),"用户名字为空");
        //这种情况就失效了,所以应用场景一般是判断查询出数据库的一些实体类或者字段
        String name = "";
        Assert.notNull(name,"字符串为空");
    }
}

三、结果展示

四、源码分析

  public static void notNull(@Nullable Object object, String message) {
        if (object == null) {
            throw new IllegalArgumentException(message);
        }
    }

简单的做了一个判断,如果为空就抛出IllegalArgumentException(非法参数异常)

五、总结

  • 优点:
    告别了if判断为空
  • 缺点:
    场景比较单一,基本使用在查询数据库后的实体类判断
相关文章
|
项目管理
技术方案怎样写
该文档介绍了编写技术方案的要点和方法。首先强调了技术方案需明确相关方、关键指标、目标受众及预期收益。接着,提到撰写方案时应避免逻辑不清晰、表达复杂和阅读难度高等问题,追求合作共赢、系统规划和显著收益。方案写作框架包括问题、方案、优势和收益。还需深入分析需求,设定SMART目标,关注度量指标如北极星指标,确保方案设计的专业性,合理规划执行路径并做好项目管理,以实现目标并确保团队协作。
441 0
|
4月前
|
缓存 边缘计算 前端开发
从业务需求到技术栈:电商API选型RESTful还是GraphQL?这5个维度帮你决策
在数字经济时代,电商平台的竞争已延伸至用户体验与系统效能。作为连接前后端及各类服务的核心,API接口的架构设计至关重要。本文对比RESTful与GraphQL两大主流方案,从电商场景出发,分析两者的技术特性、适用场景与选型逻辑,帮助开发者根据业务需求做出最优选择。
|
4月前
|
安全 Java 数据库
使用Java实现用户的注册和登录流程
以上提供了用户注册和登录的基本框架和必要的说明。在具体的应用场景中,可能还需结合框架特性如Spring Security等提供的高级特性来实现更为完备和安全的用户认证机制。在开发期间,务必注重代码的安全性、清晰性和可维护性,为用户资料保驾护航。
308 13
|
存储 数据采集 安全
CDAM数据资产管理的策略制定与落地
在数字化时代,数据成为企业的核心资产,直接影响决策效率与市场竞争力。本文探讨数据资产管理策略的制定与实施,涵盖目标设定、组织架构搭建、政策流程制定、工具技术应用、数据战略规划、人才培养、风险管理及持续优化等方面,旨在为企业提供全方位的实践指导。
|
Shell Linux 开发工具
linux shell脚本利用 kill -0 检查进程是否存在
linux shell脚本利用 kill -0 检查进程是否存在
497 1
|
网络协议 安全 网络安全
网络术语、接口和协议简介
网络术语、接口和协议简介
273 1
|
数据采集 中间件 关系型数据库
Mac系统通过brew安装mysql5.7后,启动报错的解决办法
Mac系统通过brew安装mysql5.7后,启动报错的解决办法
937 2
|
JSON 前端开发 JavaScript
Long类型字段在前后端传值问题
Long类型字段在前后端传值问题
620 0
|
JSON 数据格式
3. 使用 VsCode 开发 uni-app 项目需要使用到的插件
3. 使用 VsCode 开发 uni-app 项目需要使用到的插件
757 0
|
XML JSON 前端开发
若依ruoyi-nbcio如何做一个仿钉钉流程设计器的思考
若依ruoyi-nbcio如何做一个仿钉钉流程设计器的思考
733 0