你还在使用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判断为空
  • 缺点:
    场景比较单一,基本使用在查询数据库后的实体类判断
相关文章
|
11月前
|
Java 数据库连接 mybatis
mybatis判断list不为空
mybatis判断list不为空
144 0
|
11月前
判断Object对象是否为空
判断Object对象是否为空
|
5月前
|
传感器 安全 编译器
【C++断言机制】深入理解C/C++ 中静态断言static_assert与断言 assert
【C++断言机制】深入理解C/C++ 中静态断言static_assert与断言 assert
119 0
|
5月前
|
算法 前端开发 索引
判断对象是否为空
判断对象是否为空
52 0
|
5月前
|
前端开发 数据库
返回参数不用实体类,用map返。resultType=“Map“,以及使用map不返回空的值解决办法,
返回参数不用实体类,用map返。resultType=“Map“,以及使用map不返回空的值解决办法,
100 1
|
5月前
非空注解@NonNull与@NotNull使用错误导致传参为空时报NPE
非空注解@NonNull与@NotNull使用错误导致传参为空时报NPE
73 0
|
11月前
|
Java 开发工具 git
Optional进行优雅非空判断
Optional进行优雅非空判断
55 0
|
Java Spring
自定义注解判断参数为空
使用Spring的 @Valid和@Validated不好嘛,干嘛要自己造轮子呢.......
|
存储 人工智能 前端开发
介绍实体类或对象序列化时,忽略为空属性的操作(@JsonInclude(JsonInclude.Include.NON_EMPTY))注解
介绍实体类或对象序列化时,忽略为空属性的操作(@JsonInclude(JsonInclude.Include.NON_EMPTY))注解
|
前端开发
你真的会判断对象是否为空吗?
一个小小的判空,却很可能让你吃了大亏,如果一个判空没有做好,那么里面的逻辑就完全裸露了,相信你一定吃过 `NullPointerException` 的苦头!
111 0