java的op类怎么写_java 基本语法(十九)Optional类的使用

java.util.Optional类

1.理解:为了解决java中的空指针问题而生!

Optional 类(java.util.Optional) 是一个容器类,它可以保存类型T的值,代表这个值存在。或者仅仅保存null

,表示这个值不存在。原来用 null 表示一个值不存在,现在 Optional 可以更好的表达这个概念。并且可以避

免空指针异常。

2.常用方法:

3261cce84d531bb17b20112813d07e17.gif

@Test

public void test1(){

//empty():创建的Optional对象内部的value = null

Optional op1 = Optional.empty();

if(!op1.isPresent()){//Optional封装的数据是否包含数据

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

}

System.out.println(op1);

System.out.println(op1.isPresent());

//如果Optional封装的数据value为空,则get()报错。否则,value不为空时,返回value.

// System.out.println(op1.get());

}

@Test

public void test2(){

String str = "hello";

// str = null;

//of(T t):封装数据t生成Optional对象。要求t非空,否则报错。

Optional op1 = Optional.of(str);

//get()通常与of()方法搭配使用。用于获取内部的封装的数据value

String str1 = op1.get();

System.out.println(str1);

}

@Test

public void test3(){

String str = "beijing";

str = null;

//ofNullable(T t) :封装数据t赋给Optional内部的value。不要求t非空

Optional op1 = Optional.ofNullable(str);

//orElse(T t1):如果Optional内部的value非空,则返回此value值。如果

//value为空,则返回t1.

String str2 = op1.orElse("shanghai");

System.out.println(str2);//

}

3261cce84d531bb17b20112813d07e17.gif

3.典型练习:

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

3261cce84d531bb17b20112813d07e17.gif

//使用Optional类的getGirlName():

public String getGirlName2(Boy boy){

Optional boyOptional = Optional.ofNullable(boy);

//此时的boy1一定非空

Boy boy1 = boyOptional.orElse(new Boy(new Girl("迪丽热巴")));

Girl girl = boy1.getGirl();

Optional girlOptional = Optional.ofNullable(girl);

//girl1一定非空

Girl girl1 = girlOptional.orElse(new Girl("古力娜扎"));

return girl1.getName();

}

@Test

public void test5(){

Boy boy = null;

boy = new Boy();

boy = new Boy(new Girl("苍老师"));

String girlName = getGirlName2(boy);

System.out.println(girlName);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值