不要再用 if (obj != null) 判空了!!! 您所在的位置:网站首页 nullnull啥意思 不要再用 if (obj != null) 判空了!!!

不要再用 if (obj != null) 判空了!!!

2023-04-24 23:16| 来源: 网络整理| 查看: 265

privateInteger age;

publicPerson(String name, Integer age){

this.name = name;

this.age = age;

}

publicPerson{

}

publicString getName{

returnname;

}

publicvoidsetName(String name){

this.name = name;

}

publicInteger getAge{

returnage;

}

publicvoidsetAge(Integer age){

this.age = age;

}

}

下面,我们就高效的学习一下神奇的Optional类!

2.1 Optional对象创建

首先我们先打开Optional的内部,去一探究竟 先把几个创建Optional对象的方法提取出来

publicfinalclassOptional< T> {

privatestaticfinalOptional EMPTY = newOptional;

privatefinalT value;

//我们可以看到两个构造方格都是private 私有的

//说明 我们没办法在外面去new出来Optional对象

privateOptional{

this.value = null;

}

privateOptional(T value){

this.value = Objects.requireNonNull(value);

}

//这个静态方法大致 是创建出一个包装值为空的一个对象因为没有任何参数赋值

publicstatic Optional empty{

@SuppressWarnings( "unchecked")

Optional t = (Optional) EMPTY;

returnt;

}

//这个静态方法大致 是创建出一个包装值非空的一个对象 因为做了赋值

publicstatic Optional of(T value){

returnnewOptional(value);

}

//这个静态方法大致是 如果参数value为空,则创建空对象,如果不为空,则创建有参对象

publicstatic Optional ofNullable(T value){

returnvalue == null? empty : of(value);

}

}

再做一个简单的实例展示 与上面对应

// 1、创建一个包装对象值为空的Optional对象

Optional optEmpty = Optional.empty;

// 2、创建包装对象值非空的Optional对象

Optional optOf = Optional.of( "optional");

// 3、创建包装对象值允许为空也可以不为空的Optional对象

Optional optOfNullable1 = Optional.ofNullable( null);

Optional optOfNullable2 = Optional.ofNullable( "optional");

我们关于创建Optional对象的内部方法大致分析完毕 接下来也正式的进入Optional的学习与使用中

2.2 Optional.get方法(返回对象的值)

get方法是返回一个option的实例值 源码:

publicT get{

if(value == null) {

thrownewNoSuchElementException( "No value present");

}

returnvalue;

}

也就是如果value不为空则做返回,如果为空则抛出异常 "No value present" 简单实例展示

Person person= newPerson;

person.setAge( 2);

Optional.ofNullable(person).get;

2.3 Optional.isPresent方法(判读是否为空)

isPresent方法就是会返回一个boolean类型值,如果对象不为空则为真,如果为空则false 源码:

publicbooleanisPresent{

returnvalue != null;

}

简单的实例展示:

Person person= newPerson;

person.setAge( 2);

if(Optional.ofNullable(person).isPresent){

//写不为空的逻辑

System.out.println( "不为空");

} else{

//写为空的逻辑

System.out.println( "为空");

}

2.4 Optional.ifPresent方法(判读是否为空并返回函数)

这个意思是如果对象非空,则运行函数体 源码:

publicvoidifPresent(Consumer



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有