博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java中Optional类的使用
阅读量:3965 次
发布时间:2019-05-24

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

java.util.Optional类

1.理解:

Optional类:为了在程序中避免出现空指针异常而创建的。

Optional 类(java.util.Optional) 是一个容器类,它可以保存类型T的值,代表 这个值存在。或者仅仅保存null,表示这个值不存在。原来用 null 表示一个值不 存在,现在 Optional 可以更好的表达这个概念。并且可以避免空指针异常

2.常用方法测试:

在这里插入图片描述

* 常用的方法:ofNullable(T t)*            orElse(T t)     Girl girl = new Girl();        girl =null;        //of(T t):保证t是非空的//        Optional
girl1 = Optional.of(girl);//会报NullPointerException异常// System.out.println(girl1); //ofNullable(T t):t可以为null Optional
girl2 = Optional.ofNullable(girl); System.out.println(girl2);//Optional.empty System.out.println("****************************"); //orElse(T t1):如果单前的Optional内部封装的t是非空的,则返回内部的t. //如果内部的t是空的,则返回orElse()方法中的参数t1. Girl orElse = girl2.orElse(new Girl("xixi", 24)); System.out.println(orElse);

3.典型练习:

能保证如下的方法执行中不会出现空指针的异常。

public String getGirlName(Boy boy){
return boy.getGirl().getName(); } //优化以后的getGirlName(): public String getGirlName1(Boy boy){
if(boy != null){
Girl girl = boy.getGirl(); if(girl != null){
return girl.getName(); } } return null; }

//使用Optional类的getGirlName():

public String getGirlName2(Boy boy){
Optional
boyOptional = Optional.ofNullable(boy); //此时的boy1一定非空 Boy boy1 = boyOptional.orElse(new Boy(new Girl("赵丽颖", 30))); Girl girl = boy1.getGirl(); Optional
girlOptional = Optional.ofNullable(girl); //girl1一定非空 Girl girl1 = girlOptional.orElse(new Girl("杨幂", 35)); return girl1.getName(); }
@Test    public void test2(){
Boy boy = new Boy();// String girlName = getGirlName(boy);// System.out.println(girlName);//NullPointerException异常 String girlName1 = getGirlName1(boy); System.out.println(girlName1); System.out.println("*********************"); String girlName2 = getGirlName2(boy); System.out.println(girlName2); }

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

你可能感兴趣的文章
Python 数据类型 -- 数字
查看>>
Spring 管理对象
查看>>
Spring 自定义对象初始化及销毁
查看>>
Spring Batch 环境设置
查看>>
字符组转译序列
查看>>
字符转译序列
查看>>
Java 数据类型
查看>>
UTF-16 编码简介
查看>>
Java 变量名
查看>>
Java 四舍五入运算
查看>>
Spring Batch 例子: 运行系统命令
查看>>
括号及后向引用
查看>>
Spring Batch 核心概念
查看>>
Spring Batch 例子: 导入定长文件到数据库
查看>>
正则表达式
查看>>
Java I/O
查看>>
序列化
查看>>
Perl 精萃
查看>>
Perl 简介
查看>>
Perl 注释
查看>>