• 非空校验的几种方式


    1.string 字符串非空校验

    StringUtils.isEmpty(String str);与StringUtils.isBlank(String str);

    区别:

    StringUtils.isEmpty(String str);==>str==null 或 str.length()==0 注意空格做非空处理

    StringUtils.isBlank(String str);==>str==null 或 str.trim().length()==0 注意空格做空处理,且StringUtils.isBlank("\t \n \f \r") = true   //对于制表符、换行符、换页符和回车符做空处理;StringUtils.isBlank("\b") = false   //"\b"为单词边界符;

    StringUtils.trim(String str);这个方法会去掉字符串两端的控制符,且对制表符、换行符、换页符和回车符做空处理及对"\b"为单词边界符也做空处理 ;StringUtils.trim(" \b \t \n \f \r    ") = ""

    2.Collection集合非空校验

    CollectionUtils..isEmpty(Collection coll);===>等价于coll==null || coll.isEmpty();(coll.size==0)

    3.Object非空校验

    Objects.isNull(Object obj);与object== null 没区别,只是由于jdk8引入lambda,所以在写法 Objects::isNull更直观

    解释:: 方法引用(方法引用是用来直接访问类或者实例的已经存在的方法或者构造方法。方法引用提供了一种引用而不执行方法的方式,它需要由兼容的函数式接口构成的目标类型上下文。计算时,方法引用会创建函数式接口的一个实例)

    1.静态方法引用 ClassName::staticMethod ==>等价于(args) -> ClassName.staticMethod (args),把lambda表达式的参数直接当成staticMethod的参数来调用

    2.实例方法引用 objectName::instanceMethod   ==>等价于(args) -> ClassName.staticMethod (args) 把lambda表达式的参数直接当成instanceMethod的参数来调用

                    ClassName::instanceMethod ==>等价于(args) -> args.instanceMethod() 或者(arg1,arg2) -> arg1.instanceMethod(arg2)其中ClassName是第一个参数arg1(当做目标对象),其他剩余参数arg2当成该方法的参数

    3.构造方法引用(构造器引用)ClassName::new ==>等价于(args) ->new ClassName(args) ,把lambda表达式的参数当成ClassName构造器的参数

    4.使用Assert

    常用断言方法:  
     
    Assert.notNull(Object object, "object is required")    -    对象非空 
    Assert.isTrue(Object object, "object must be true")   -    对象必须为true   
    Assert.notEmpty(Collection collection, "collection must not be empty")    -    集合非空  
    Assert.hasLength(String text, "text must be specified")   -    字符不为null且字符长度不为0   
    Assert.hasText(String text, "text must not be empty")    -     text 不为null且必须至少包含一个非空格的字符  
    Assert.isInstanceOf(Class clazz, Object obj, "clazz must be of type [clazz]")    -    obj必须能被正确造型成为clazz 指定的类

  • 相关阅读:
    拆点____ 行车路线
    Unity 动态创建Mesh 基础方法与高级方法
    JavaScript -- Date对象及常用方法介绍
    【Composite模式】C++设计模式——组合模式
    vue3+vite与vue2+webpack 分别配置环境变量
    理解自动驾驶感知技术
    [论文笔记]Prefix Tuning
    Java Elasticsearch 按一定时间间隔(timeInterval)循环查询数据
    在Xamarin.Android项目中调用自己写的java jar包
    自动化运维工具Ansible的基本概念及Ansible playbook的基础用法
  • 原文地址:https://blog.csdn.net/weixin_39209728/article/details/127859200