• Java中常用判断方法


    对象的判断(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));
        }
    
    • 1
    • 2
    • 3

    Objects.isNull(Object obj)

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

    public static boolean isNull(Object obj) {
            return obj == null;
        }
    
    • 1
    • 2
    • 3

    Objects.nonNull(Object obj)

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

    public static boolean nonNull(Object obj) {
            return obj != null;
        }
    
    • 1
    • 2
    • 3

    Objects.toString(Object o, String nullDefault)

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

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

    字符串的判断( 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"为单词边界符
    
    • 1
    • 2
    • 3
    • 4

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    注意

    • 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());
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    输出:[main] ERROR ***** - 报错原因:[这里出错了]
    
    • 1

    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时不满足断言,抛异常

  • 相关阅读:
    【六天案例教程】全流程TOUGH系列软件实践技术应用
    彻底搞通服务发现的原理和实现
    TimesNet:时间序列预测的最新模型
    C# 8.0 添加和增强的功能
    【STL】list常见用法及模拟实现(附完整源码)
    centos7 安装mariadb
    【毕业设计】深度学习+opencv+python实现车道线检测 - 自动驾驶
    【Java编程进阶之路--面向对象】
    面向对象——实现类的基本操作
    C语言面试题 - 结构体对齐
  • 原文地址:https://blog.csdn.net/weixin_46488534/article/details/128123728