Java中常用判断方法

news/2024/7/8 5:12:29

常用判断方法

  • 对象的判断(Objects工具类-Java自带)
    • Objects.equals(Object a, Object b)
    • Objects.isNull(Object obj)
    • Objects.nonNull(Object obj)
    • Objects.toString(Object o, String nullDefault)
  • 字符串的判断( StringUtils工具类-Hutool)
    • isEmpty(String str)
    • isNotEmpty(String str)
    • isBlank(String str)
    • isNotBlank(String str)
    • isNoneBlank(String str)
    • 注意
  • 断言的使用(Assert工具类)
    • notNull(Object object)
    • isNull(Object object)
    • notEmpty(Collection collection)
    • isTrue(boolean expression)
    • isFalse(boolean expression)
    • hasText(String text)

对象的判断(Objects工具类-Java自带)

Objects.equals(Object a, Object b)

如果参数相等返回true,否则false。 因此,如果这两个参数是null ,返回 true,如果只有一个参数为null , 返回 false。 否则,通过使用第一个参数的equals方法确定相等性。

public static boolean equals(Object a, Object b) {
        return (a == b) || (a != null && a.equals(b));
    }

Objects.isNull(Object obj)

如果提供的参考是 null返回 true,否则返回 false 。

public static boolean isNull(Object obj) {
        return obj == null;
    }

Objects.nonNull(Object obj)

如果提供的参考是非 null返回 true,否则返回 false 。

public static boolean nonNull(Object obj) {
        return obj != null;
    }

Objects.toString(Object o, String nullDefault)

如果第一个参数不是 null ,则返回在第一个参数上调用 toString的结果,否则返回第二个参数。

public static String toString(Object o, String nullDefault) {
        return (o != null) ? o.toString() : nullDefault;
    }

字符串的判断( StringUtils工具类-Hutool)

isEmpty(String str)

判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0

isNotEmpty(String str)

判断某字符串是否非空,等于 ! isEmpty(String str)

isBlank(String str)

判断某字符串是否为 空 或 长度为0 或由 空白(whitespace)构成

StringUtils.isBlank(" ") = true
StringUtils.isBlank("\t \n \f \r") = true //对于制表符、换行符、换页符和回车符
StringUtils.isBlank() //均识为空白符
StringUtils.isBlank("\b") = false //"\b"为单词边界符

isNotBlank(String str)

判断某字符串是否为 空 或 长度为0 或由 空白(whitespace)构成

isNoneBlank(String str)

检查是否没有任何为空(“”)、null、或仅空白

StringUtils.isNoneBlank((String) null) = false
StringUtils.isNoneBlank((String[]) null) = true
StringUtils.isNoneBlank("") = false
StringUtils.isNoneBlank(null) = true
StringUtils.isNoneBlank(" ") = false

注意

  • isEmpty和isBlank不同的地方, isEmpty认为空格(无论单空格还是多空格)都是不是空. 而isBlank 认为空格,换行符号(\n),tab(\t)都是空。
  • isNoneBlank 和isNotBlank 在同一个参数的情况下, 含义是一样的, 但是isNoneBlank 的参数, 可以是一个字符数组, 当isNoneBlank 的参数是一个数组的时候, 就是说有一个参数为null, 那么返回都会返回false
  • 一般情况下 isNoneBlank 用于校验表单的参数是否为空. 如果有一个为空, 都不满足条件。

断言的使用(Assert工具类)

断言的理解: 断言他满足条件不抛异常; 不满足断言时产生异常;
常常结合try一起使用(或者全局定义,异常抛出)

  • 下列方法都有重载,可自定义抛出异常,下面举个例子
	public static void main(String[] args) {
        try {
           Assert.isTrue(false, "这里出错了");
           // Assert.isTrue(false);
           // Assert.isTrue(false, () -> new CommonBizException("这里出错了"));
        } catch (Exception e) {
            log.error("报错原因:[{}]", e.getMessage());
        }
    }
输出:[main] ERROR ***** - 报错原因:[这里出错了]

notNull(Object object)

当 object 为 null 时抛出异常; 理解: 断言他不是空, 当是空的时候不满足断言则出异常

isNull(Object object)

当 object 不为 null 时抛出异常;
理解:断言他是空, 当他不是空时,不满足断言则出异常

notEmpty(Collection collection)

当 collection 为空时抛异常;
理解:断言他不是空, 当他时空时,不满足断言,抛异常;

isTrue(boolean expression)

当 expression不为 true 时抛出异常;
理解:断言他是true, 当他不是true,是不满足断言则出异常

isFalse(boolean expression)

当 expression不为false 时抛出异常;
理解:断言他是false, 当他不是false,是不满足断言则出异常

hasText(String text)

当 text 不是text时抛异常;
理解: 断言他是text, 当他不是text时不满足断言,抛异常


http://lihuaxi.xjx100.cn/news/299063.html

相关文章

Android 11.0 设置默认8时区和默认24小时制

目录 1.概述 2.设置默认8时区和默认24小时制的核心类 3.设置默认8时区和默认24小时制的核

【华为上机真题 2022】按照身高体重排队

🎈 作者:Linux猿 🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊! &…

唯一索引和普通索引应该如何选择?

唯一索引和普通索引应该如何选择 唯一索引:唯一索引和主键索引一样不能重复。唯一索引可作为数据的一个合法检验手段。普通索引:在创建普通索引时,没有任何的限制条件,比如非空或者唯一,可以在任意字段上建立普通索引…

表数据结构变动、修复表数据的历史版本兼容解决方案

​ 平时我们做业务需求的时候,难免会碰到有些非常大的改动,大到要修改表结构或者数据结构才能满足,这时候如何能同时兼容老版本的业务与新版本的业务就是一个首要解决问题 1.将老版本数据格式升级到新版本 这是一个很容易想到的解决方案&…

Vue3聊天气泡简单实现思路

Vue3聊天气泡简单实现 实现聊天气泡主要有两个注意点: ①是根据字体数量自适应框的长度 ②字体到框有边距,也就是为了美观 这篇博客主要讲实现的思路,不讲聊天气泡的三角突出点,如下所示: 三角突出点通过简单的bord…

QuEra将研发可重构中性原子量子计算机

(图片来源:网络) 上个月,借助Amazon Braket,QuEra Computing开始提供对其中性原子量子系统Aquila的访问, Aquila具有256个量子比特。如今,量子公司的数量与日俱增,QuEra是其中之一,它…

图片base64,file,blob格式的相互转换,以及gif转base64

图片base64,file,blob格式的相互转换,以及gif转base64(第六点) 1、new Image()图片链接转base64 只能转化为普通的jpg/png图片。无法转化gif图type可以转换为base64和blobquality图片质量(image/jpeg 或 image/webp 生效) const imgToBase64 ({url,typ…

MyBatis-Plus配置之基础配置(SpringBoot)

系列文章目录 Mybatis-Plus知识点[MyBatisMyBatis-Plus的基础运用]_心态还需努力呀的博客-CSDN博客 Mybatis-PlusSpringBoot结合运用_心态还需努力呀的博客-CSDN博客MyBaits-Plus中TableField和TableId用法_心态还需努力呀的博客-CSDN博客 MyBatis-Plus中的更新操作&#x…