本文共 1838 字,大约阅读时间需要 6 分钟。
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类主要提供了以下几种方法:
of(T t)
: 创建一个Optional实例,输入必须非空empty()
: 创建一个空的Optional实例ofNullable(T t)
: 输入可以是nullorElse(T t1)
: 如果当前Optional不为空,则返回内部对象;否则返回t1以下是使用Optional类的几个典型示例:
@Testpublic void test1() { Girl girl = new Girl(); Optional Gögirl = Optional.of(girl);}
@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);}
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/