• 非空校验的几种方式


    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 指定的类

  • 相关阅读:
    LCD1602
    【Python抢票神器】火车票枪票软件到底靠谱吗?实测—终极攻略。
    HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效——错误代码:0x8007000d
    python面试题——抽象基类和接口
    新闻主题分类任务——torchtext 库进行文本分类
    Go 字符串处理:fmt.Sprintf与string.Builder的比较
    C++:多态与虚函数,纯虚函数
    Android8.0 后台服务保活的一种思路
    Linux 系统与本地 windows 系统相差30s左右问题解决方案
    拓展认知边界:如何给大语言模型添加额外的知识
  • 原文地址:https://blog.csdn.net/weixin_39209728/article/details/127859200