码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Java中常用判断方法


    常用判断方法

    • 对象的判断(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));
        }
    
    • 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时不满足断言,抛异常

  • 相关阅读:
    Docker集群部署DockerCompose
    中国移动 OneNET 免费的物联网平台
    OpenTiny HUICharts 正式开源发布,一个简单、易上手的图表组件库
    k8s,30分钟部署一个kubernetes集群
    vue--8.组件传值(provide--inject)、动态组件、缓存组件keep-alive、异步组件
    C#8.0本质论第十三章--委托和Lambda表达式
    全国省市区三级地区MySQL数据(三张表)
    Golang中for循环使用
    Api接口加密策略
    深入理解多线程(第二篇)
  • 原文地址:https://blog.csdn.net/weixin_46488534/article/details/128123728
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号