IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java 判断对象空的方法 -> 正文阅读

[Java知识库]Java 判断对象空的方法

Java 判断对象空的方法

一、使用 == 或者 equals()比较

==

str == "";
str == null;

equals()

"".equals(str)
//不推荐判断null
String str = null;
str2.equals(str);

注意

java中对equals的定义: 对于任何非空引用值 x,x.equals(null) 都应返回 false;
使用equals()判断对象null,会出现java.lang.NullPointerException异常
对于null
1.null是任何引用类型的默认值,不严格的说是所有object类型的默认值。这对所有变量都是适用的,如成员变量、局部变量、实例变量、静态变量;
2.null是任何一个引用类型变量的默认值,在java中不能使用null引用来调用任何的instance方法或者instance变量。

自定义方法

 public static boolean isNull(Object object){
        if (null == object) {
            return true;
        }
        if ((object instanceof String)){
            return "".equals(((String)object).trim());
        }
        return false;
    }

二、StringUtils.isBlank(String str)

StringUtils.isBlank(String str) 判断某字符串是否为空或长度为0或由空白符(whitespace) 构成

StringUtils.isBlank(str);
//
System.out.println(StringUtils.isBlank(null));        //true
System.out.println(StringUtils.isBlank(""));          //true
System.out.println(StringUtils.isBlank("   "));       //true

注意:

StringUtils.isBlank(String str) 等价于 !isBlank(String str)

三、StringUtils.isEmpty(String str)

StringUtils.isEmpty(String str) 判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0

StringUtils.isEmpty(str);
//
System.out.println(StringUtils.isEmpty(null));        //true
System.out.println(StringUtils.isEmpty(""));          //true
System.out.println(StringUtils.isEmpty("   "));       //false

注意:

StringUtils.isNotEmpty(String str) 等价于 !isEmpty(String str)

四、Optional(T value),empty(),of(T value),ofNullable(T value)

JDK 8 新方法**

1.Optional.of(T value)
该方法通过一个非 null 的 value 来构造一个 Optional,返回的 Optional 包含了 value 这个值。对于该方法,传入的参数一定不能为 null,否则便会抛出 NullPointerException。

//of(T value)
Optional<String> str = Optional.of("");
//传入参数为null,抛出NullPointerException.
Optional<String> strNull = Optional.of(null);

2.Optional.ofNullable(T value)
Optional.ofNullable(T value):若 value 不为 null,创建 Optional 实例,否则创建空实例
该方法和 of 方法的区别在于,传入的参数可以为 null

public static <T> Optional<T> ofNullable(T value) {
	//进行三目运算,判断传入的参数是否为 null,如果为 null 的话,返回的就是 Optional.empty()。
    return value == null ? empty() : of(value);
}


Optional<String> nullableOpt = Optional.ofNullable(str);

3.Optional.empty()
该方法用来构造一个空的 Optional,即该 Optional 中不包含值 —— 其实底层实现还是 如果 Optional 中的 value 为 null 则该 Optional 为不包含值的状态,然后在 API 层面将 Optional 表现的不能包含 null 值,使得 Optional 只存在 包含值 和 不包含值 两种状态。

//empty() :用于创建一个没有值的Optional对象:
Optional<String> emptyOpt = Optional.empty();

Optional判空


//判空写
Optional.ofNullable(变量).orElse(默认值);
//循环遍历集合
List<String> list = getList();
Optional.ofNullable(list).orElse(new ArrayList<>()).forEach(o -> {
      System.out.println(o);
});

使用orElse方法设置默认值,Optional类还包含其他方法用于获取值:
orElse():如果有值就返回,否则返回一个给定的值作为默认值;
orElseGet():与orElse()方法作用类似,区别在于生成默认值的方式不同。该方法接受一个Supplier<? extends T>函数式接口参数,用于生成默认值;
orElseThrow():与前面介绍的get()方法类似,当值为null时调用这两个方法都会抛出NullPointerException异常,区别在于该方法可以指定抛出的异常类型。

扩展

判断Null:
isPresent():如果创建的对象实例为非空值的话,isPresent()返回true,调用get()方法会返回该对象,如果没有值,调用isPresent()方法会返回false,调用get()方法抛出NullPointerException异常。
使用filter()方法过滤
filter()方法可用于判断Optional对象是否满足给定条件,一般用于条件过滤,在代码中,如果filter()方法中的Lambda表达式成立,filter()方法会返回当前Optional对象值,否则,返回一个值为空的Optional对象。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-08 11:07:41  更:2021-08-08 11:08:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/11 5:41:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码