[用法] Empty string judge 在判断一个字符串是否为空时,我们一般是这样写的: // 判断不为空 if (str != null && !...知道这条规定,就可以发现上面的问题了:当str为空时str?.isEmpty()输出的结果为null,而这在if语句中,实际上相当于false,那么也就是说当str为空时,str?....str.isNotEmpty()) { // str is empty, do something } str非空时,逻辑肯定没有问题,当str为空时,str?....是不建议if中传null这样非bool类型的对象的,所以你这样写的话会给一个提示: [s05eaoag3o.png] 这里的逻辑确实容易让不了解的人很困惑,所以不建议用以上null-aware操作符来做字符串的空判断...如果想做一个工具方法来简化字符串的判断,也不用自己重复造轮子,推荐使用官方的quiver.strings这个库,里面涵盖了字符串的一些常用工具方法。
本文链接:https://blog.csdn.net/qq_37933685/article/details/86094814 Java技巧系列( 一 )优雅判空 为什么要判空 null是Java中一个很重要的概念...什么需要判空 有两种情况会出现判空语句: null返回值按找约定是正常的返回值 null返回值不是正常的返回值 第二种情况很简单。...如何优雅判空 NULL Object 设计模式 Nullable是空对象的相关操作接口,用于确定对象是否为空,因为在空对象模式中,对象为空会被包装成一个Object,成为Null Object,该对象会对原有对象的所有方法进行空实现...… Optional 1、Optional.ofNullable(test),如果test为空,则返回一个单例空Optional对象,如果非空则返回一个Optional包装对象,Optional将test...value,为空则返回传入的参数作为默认值。
字符串的判空,日常开发是经常要做的一种校验,common-lang包帮我们做了一些字符串判空的封装 org.apache.commons</groupId...isEmpty(cs); } 就可以很轻易的得到以下的区别: isBlank,当文本为null或者全部为空格的时候都会返回true isEmpty,只要当文本时null的时候才会返回true;全空格也被认定为非空;
多个方法,并且都是static的,所以我们可以这样调用StringUtils.xxx() 例子解释: //1. public static boolean isEmpty(String str) //判断某字符串是否为空...,为空的标准是str==null或str.length()==0 //下面是StringUtils判断是否为空的示例: StringUtils.isEmpty(null) = true StringUtils.isEmpty...false StringUtils.isEmpty(" bob ") = false //2. public static boolean isNotEmpty(String str) //判断某字符串是否非空...= true StringUtils.isNotEmpty(" bob ") = true //3. public static boolean isBlank(String str) //判断某字符串是否为空或长度为...false StringUtils.isBlank(" bob ") = false //4. public static boolean isNotBlank(String str) //判断某字符串是否不为空且长度不为
1、前言实际项目中我们会有很多地方需要判空校验,如果不做判空校验则可能产生NullPointerException异常。...针对异常的处理我们在上一篇有提及:先来看一下实际项目中一些判空方式通常我们判断一个对象是否为Null,可以使用java.util中的Objects.nonNull(obj)、hutool中的ObjectUtil...= obj2、List的判空像List这种比较特殊的在项目中可能不仅仅是判断非空了。...诸如此类的还有Set、Map等3、String的判空这里还是用瓶子与水的概念,String为null时调用equals(String) 或 length() 等操作抛出 java.lang.NullPointerException...针对字符串判空有以下几种方式:1、大多数人使用的方法之一,直观,方便,但效率低下:if(a == null || a.equals(""));2、比较字符串长度,高效:if(a == null || a.length
文章目录 一、指针使用前判空 二、while 空语句 三、代码示例 一、指针使用前判空 ---- 在任何指针使用之前 , 要先进行判空 ; 尤其是 函数 形参 指针 , 使用前先 判断该 指针变量 是一个合法的指针...NULL , 则立刻退出 ; // 判断 参数中的 指针变量 不为空 if(from == NULL || to == NULL) { // 这两个指针有任何一个为空...( 实现了模块化 ) * 将 from 指针指向的字符串 拷贝到 to 指针指向的字符串换 */ void str_copy(char *from, char *to) { //...判断 参数中的 指针变量 不为空 if(from == NULL || to == NULL) { // 这两个指针有任何一个为空 , 都直接退出 return...; // 在栈内存中定义 char *指针 // 在堆内存分配 20 字节内存 , 用于存放字符串 char *buffer = malloc(20); // 调用字符串拷贝函数
对于 Java 开发来说,判空可以说是一种素养,很多 bug 都是由空指针引起的。 为了避免空指针异常,我们通常会在使用对象前进行判空, 如果某个必要的对象为空,可以抛出相应的异常。
在我们日常开发中,判空应该是最常用的一个操作了。因此项目中总是少不了依赖commons-lang3包。...这个包为我们提供了两个判空的方法,分别是StringUtils.isEmpty(CharSequence cs)和StringUtils.isBlank(CharSequence cs)。...0 : cs.length(); } 这个方法除了判断字符串是否为null和长度是否为零,还判断了是否为空格,如果是空格也返回true。...isBlank判空更加准确。 四、扩展 在实际开发中,除了isBlank判空的几种情况之外,其实“null”字符串我们也会当作空字符串处理。...“null”,另一方面对参数个数无限制,只要有一个参数是空则返回true。
文章目录 一、非空断言操作符 !! 二、使用 if 语句判空 一、非空断言操作符 !!...---- Kotlin 中的 可空类型 变量 , 在运行时 可以选择 不启用 安全调用 操作 , 在调用 可空类型 变量 成员 与 方法 时 , 使用 非空断言操作符 !!...kotlin.KotlinNullPointerException at HelloKt.main(Hello.kt:3) at HelloKt.main(Hello.kt) 二、使用 if 语句判空...非空断言操作符 !! 之外 , 还可以使用 Java 语言中的传统判空方式 , 即 if 语句判断 变量 是否为 null ; 空安全调用操作符 ?...与 使用 if 语句判空操作 对比 : 空安全调用操作符 更加 灵活 , 简洁 ; 空安全调用操作符 可以进行 链式调用 ; 二者的效果是等价的 ; 代码示例 1 : 下面的代码是 使用 if 语句判空
NullPointerException 作为搬砖党的一族们,我们对判空一定再熟悉不过了,不要跟我说你很少进行判空,除非你喜欢NullPointerException。 ...NullObject模式 对于项目中无数次的判空,对代码质量整洁度产生了十分之恶劣的影响,对于这种现象,我们称之为“判空灾难”。 ...,更具体的内容大家也可以多找一找资料,上述只是对NullObject的简单介绍,但是,今天我要推荐的是一款协助判空的插件NR Null Object,让我们来优雅地进行判空,不再进行一顿操作来定义繁琐的空对象接口与空独享实现类...value : other; } 怎么样,使用Optional后我们的代码是不是瞬间变得非常整洁,或许看到这段代码你会有很多疑问,针对复杂的一长串判空,Optional有它的优势,但是对于简单的判空使用...test4 如果你已经开始使用了Kotlin,可以不用再写缭乱的防御判空语句。如果你还没有使用Kotlin,并不推荐为了判空优雅而直接转向Kotlin。
Java 中的 Optional 类是在 Java 8 中引入的一个重要类,它的作用是帮助开发者更好地处理可能为 null 的值,避免空指针异常,并且提高代码的可读性。...这样的 API 更易于理解和使用,因为调用者知道需要处理可能为空的情况。 强制进行空值检查:通过使用 Optional,可以强制开发者在使用值之前进行空值检查,从而提高代码的稳健性。...更好的语义:将可能为空的情况显式地表达为 Optional 类型,有助于代码的可读性和维护性,因为它明确地传达了某个值可能不存在的语义。...String word; } public static void main(String[] args) { A a = new A(new B(new C("我是C的字符串..."))); // 如果我要去拿C的字符串如何拿?
作为搬砖党的一族们,我们对判空一定再熟悉不过了,不要跟我说你很少进行判空,除非你喜欢 NullPointerException。...What,我们有接近一万行的代码都是在判空? 好了,接下来,要进入正题了。...---- NullObject模式 对于项目中无数次的判空,对代码质量整洁度产生了十分之恶劣的影响,对于这种现象,我们称之为“判空灾难”。...,更具体的内容大家也可以多找一找资料,上述只是对 NullObject的简单介绍,但是,今天我要推荐的是一款协助判空的插件 NRNullObject,让我们来优雅地进行判空,不再进行一顿操作来定义繁琐的空对象接口与空独享实现类...怎么样,使用 Optional后我们的代码是不是瞬间变得非常整洁,或许看到这段代码你会有很多疑问,针对复杂的一长串判空,Optional有它的优势,但是对于简单的判空使用 Optional也会增加代码的阅读成本
那么,Optional的本质,就是内部储存了一个真实的值,在构造的时候,就直接判断其值是否为空。好吧,这么说还是比较抽象。...根据构造函数的源码我们可以得出两个结论: 通过of(T value)函数所构造出的Optional对象,当Value值为空时,依然会报NullPointerException。...通过of(T value)函数所构造出的Optional对象,当Value值不为空时,能正常构造Optional对象。...u-> u.getName()).get(); 4、isPresent()和ifPresent(Consumer consumer) 这两个函数放在一起记忆,isPresent即判断value值是否为空,...而ifPresent就是在value值不为空时,做一些操作。
在我们日常开发中,判空应该是最常用的一个操作了。因此项目中总是少不了依赖commons-lang3包。...这个包为我们提供了两个判空的方法,分别是StringUtils.isEmpty(CharSequence cs)和StringUtils.isBlank(CharSequence cs)。...「isBlank判空更加准确」。 四、扩展 在实际开发中,除了isBlank判空的几种情况之外,其实“null”字符串我们也会当作空字符串处理。...我们需要判断几个字段同时不能为空,如果还用isBlank就显得有点累赘了。我们可以使用String的可变参数提供如下工具类。...“null”,另一方面对参数个数无限制,只要有一个参数是空则返回true。
Spring源码中的那些判空 背景 & 介绍 在平时进行判空时, 相信很多人使用的都是 org.apache.commons.lang3 的StringUtils 而我在阅读Spring源码中, 发现了一个宝藏.... springframework 中自带的StringUtils, 而且也可以进行判空 首先我们可以看下commons包下面的StringUtils的源码, 可以看到 isEmpty() 的作用是判断输入的字符串是否为...null 或者 字符串长度为0 , 例如: null, “” (空字符串) isBlank() 的作用是在 isEmpty()的基础上追加对空白符的判空, 例如 " " (空格符), " ", " "(...等等 在我找源码中使用springframework中StringUtils的举例时, 发现了了一个 isEmpty(), 但是这个判空不是对String类型进行判空, 而是对list集合进行的判空...因此在进行集合判空时, 建议使用 CollectionUtils.isEmpty(集合) 进行判空 果然源码教我们做人~~~ public static boolean isEmpty(@Nullable
17:字符串判等 总时间限制: 1000ms 内存限制: 65536kB描述 判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等。 输入两行,每行包含一个字符串。...输出若两个字符串相等,输出YES,否则输出NO。
NULL = (void *)0 C指针的字面空值 nil = (id)0 OC对象的字面空值 Nil = (Class)0 OC类的字面空值...NSNull = [NSNull null] 空值的OC对象 具体如下: //1....NULL //表示C的指针空值 int *pointerToInt = NULL; char *pointerToChar = NULL; struct TreeNode *rootNode = NULL...Nil // 表示只想OC类 类型的指针为空 Class class = Nil; Class class2 = [NSString class]; // 4....NSNull:一个OC对象,用于表示空值的类 // 只有一个单例方法:+ (NSNull *)null; // 一般用于集合对象中保存一个空的占位对象: \ 因为Foundation集合对象中,nil
那么,Optional的本质,就是内部储存了一个真实的值,在构造的时候,就直接判断其值是否为空。好吧,这么说还是比较抽象。...根据构造函数的源码我们可以得出两个结论: 通过of(T value)函数所构造出的Optional对象,当Value值为空时,依然会报NullPointerException。...通过of(T value)函数所构造出的Optional对象,当Value值不为空时,能正常构造Optional对象。...u.getName()).get(); 1.4 isPresent()和ifPresent(Consumer consumer) 这两个函数放在一起记忆,isPresent即判断value值是否为空,...而ifPresent就是在value值不为空时,做一些操作。
java 开发中我们经常会用到的数据判空、数据比较和不同数据之间的类型转换,尤其数据判空可以让我们避免经常会出现的 NullPointerException 空指针异常报错。...一、数据判空开发中判空时推荐使用工具库:StringUtils、CollectionUtils、ArrayUtils、Objects、NumberUtils1、字符串判空// 方式1:判断是否为 null...(str, str2, str3)) {}2、Integer 判空基本数据类型 int 是不能为 null 的,只有包装类型 Integer 才能赋值为 nullif (integer == null...}if (integer == null || integer.intValue() == 0) {}推荐使用:if (NumberUtils.isNullorZero(number)) {}3、对象判空...= null) {}推荐使用:if (Objects.isNull(obj)) {}if (Objects.nonNull(obj)) {}4、List判空// 方式一if (list == null
= obj )进行对象校验;在 Java 7 中,专门提供工具类java.util.Objects,让对象的判空校验更加简单; 特点 Java 7 自带,不需要额外的依赖 静态方法,使用简单 仅支持对象判空...(NullTest.java:97) at com.ehang.helloworld.controller.NullTest.main(NullTest.java:23) 2字符串判空 字符串是开发过程中使用最多一种数据类型...,因此对字符串的判断、校验也就必不可少了,原生的方式都是通过空对象,长度进行判断: String str = "一行Java" if ( null !...= str && s1.length() > 0 ){ // 对str字符串进行使用 } 但是,对字符串的校验,除了判空之外,还有很多其他的场景,比如判断是不是空串(String str = "")...,功能比较单一,在教新的版本中,这个工具类的字符串判空方法已经被弃用了,所以不太建议使用了; StringUtils.isEmpty 空对象以及空串的校验; String s1 = null; String
领取专属 10元无门槛券
手把手带您无忧上云