本笔记来源于:尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)
b站视频
java.util.Optional类
1.理解:为了解决java中的空指针问题而生!
Optional< T > 类(java.util.Optional) 是一个容器类,它可以保存类型T的值,代表这个值存在。或者仅仅保存null ,表示这个值不存在。原来用 null 表示一个值不存在,现在 Optional 可以更好的表达这个概念。并且可以避免空指针异常。
2.常用方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| @Test public void test1(){ Optional<Object> op1 = Optional.empty(); if(!op1.isPresent()){ System.out.println("数据为空"); } System.out.println(op1); System.out.println(op1.isPresent());
}
@Test public void test2(){ String str = "hello";
Optional<String> op1 = Optional.of(str); String str1 = op1.get(); System.out.println(str1); }
@Test public void test3(){ String str = "beijing"; str = null; Optional<String> op1 = Optional.ofNullable(str); String str2 = op1.orElse("shanghai");
System.out.println(str2); }
|
3.典型练习:
能保证如下的方法执行中不会出现空指针的异常。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| 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(); }
@Test public void test5(){ Boy boy = null; boy = new Boy(); boy = new Boy(new Girl("苍老师")); String girlName = getGirlName2(boy); System.out.println(girlName); }
|