博客
关于我
Optional类
阅读量:772 次
发布时间:2019-03-23

本文共 1838 字,大约阅读时间需要 6 分钟。

Java Optional类核心教程

Java Optional类概述

PortableNSObject Java的Optional类被设计用于处理那些可以为空的对象,而不用担心空指针异常。它的设计理念类似于"Maybe"或"Optional"概念,在很多编程语言中都能找到对应的实现。

女孩类的结构简单明了,只有一个属性name。

package com.atguigu.java4;public class Girl {    private String name;    //其他方法...}

男孩类与女孩类有一定的关联关系,通过setGirl和getGirl方法实现对应关系.

package com.atguigu.java4;public class Boy {    private Girl girl;    //其他方法...}

Optional类方法解析

Optional类主要提供了以下几种方法:

  • of(T t): 创建一个Optional实例,输入必须非空
  • empty(): 创建一个空的Optional实例
  • ofNullable(T t): 输入可以是null
  • orElse(T t1): 如果当前Optional不为空,则返回内部对象;否则返回t1

OptionalTest测试案例

以下是使用Optional类的几个典型示例:

测试1

@Testpublic void test1() {    Girl girl = new Girl();    Optional Gögirl = Optional.of(girl);}

测试2

@Testpublic void test2() {    Girl girl = new Girl();    Optional Gögirl = Optional.ofNullable(girl);    System.out.println(Gögirl);        Girl girl1 = Ögirl.orElse(new Girl("赵丽颖"));    System.out.println(girl1);}

完善后的getGirlName方法

public String getGirlName(Boy boy) {    if (boy != null) {        Girl girl = boy.getGirl();        if (girl != null) {            return girl.getName();        }    }    return null;}

测试优化版本

@Testpublic void test4() {    Boy boy = null;    String girlName = getGirlName1(boy);    System.out.println(girlName);}

第二种实现方法

public String getGirlName2(Boy boy) {    Optional Boy boyOptional = Optional.ofNullable(boy);    Boy boy1 = boyOptional.orElse(new Boy(new Girl("迪丽热巴")));        Girl girl = boy1.getGirl();    Optional Girl girlOptional = Optional.ofNullable(girl);    Girl girl1 = girlOptional.orElse(new Girl("古力娜扎"));    return girl1.getName();}

最终测试案例

@Testpublic void test5() {    Boy boy = null;    boy = new Boy(new Girl("苍老师"));    String girlName = getGirlName2(boy);    System.out.println(girlName);}

总结

通过以上案例可以看出,Java Optional类的设计极大地简化了代码编写和理解,同时有效避免了空指针异常的问题。在实际开发中,可以通过Optional来更安全地处理可能为空的对象,提高代码的健壮性和可读性。

转载地址:http://bgtzk.baihongyu.com/

你可能感兴趣的文章
webpack css文件处理
查看>>
mysql二进制包安装和遇到的问题
查看>>
MySql二进制日志的应用及恢復
查看>>
mysql互换表中两列数据方法
查看>>
mysql五补充部分:SQL逻辑查询语句执行顺序
查看>>
mysql交互式连接&非交互式连接
查看>>
MySQL什么情况下会导致索引失效
查看>>
Mysql什么时候建索引
查看>>
MySql从入门到精通
查看>>
MYSQL从入门到精通(一)
查看>>
MYSQL从入门到精通(二)
查看>>
mysql以下日期函数正确的_mysql 日期函数
查看>>
mysql以服务方式运行
查看>>
mysql优化--索引原理
查看>>
MySQL优化之BTree索引使用规则
查看>>
MySQL优化之推荐使用规范
查看>>
Webpack Critical CSS 提取与内联教程
查看>>
mysql优化概述(范式.索引.定位慢查询)
查看>>
MySQL优化的一些需要注意的地方
查看>>
mysql优化相关
查看>>