optional(Java中Optional类的作用是什么)

发布时间:2025-12-10 22:57:44 浏览次数:1

stream() 语法

publicStream<T>stream()

stream方法的作用就是将Optional转为一个 Stream,如果该Optional中包含值,那么就返回包含这个值的 Stream,否则返回一个空的 Stream(Stream.empty())。

importjava.util.Arrays;importjava.util.List;importjava.util.Optional;importjava.util.stream.Collectors;importjava.util.stream.Stream;publicclassTester{publicstaticvoidmain(String[]args){List<Optional<String>>list=Arrays.asList(Optional.empty(),Optional.of("A"),Optional.empty(),Optional.of("B"));//filterthelistbasedtoprintnon-emptyvalues//ifoptionalisnon-empty,getthevalueinstream,otherwisereturnemptyList<String>filteredList=list.stream().flatMap(o->o.isPresent()?Stream.of(o.get()):Stream.empty()).collect(Collectors.toList());//Optional::streammethodwillreturnastreamofeitherone//orzeroelementifdataispresentornot.List<String>filteredListJava9=list.stream().flatMap(Optional::stream).collect(Collectors.toList());System.out.println(filteredList);System.out.println(filteredListJava9);}}

输出

[A,B][A,B]

ifPresentOrElse()语法

publicvoidifPresentOrElse(Consumer<?superT>action,RunnableemptyAction)

如果存在值,则使用该值执行给定的操作,否则执行给定的基于空的操作。

importjava.util.Optional;publicclassTester{publicstaticvoidmain(String[]args){Optional<Integer>optional=Optional.of(1);optional.ifPresentOrElse(x->System.out.println("Value:"+x),()->System.out.println("NotPresent."));optional=Optional.empty();optional.ifPresentOrElse(x->System.out.println("Value:"+x),()->System.out.println("NotPresent."));}}

输出

Value:1NotPresent.

or()语法

publicOptional<T>or(Supplier<?extendsOptional<?extendsT>>supplier)

如果值存在,返回Optional指定的值,否则返回一个预设的值。

importjava.util.Optional;importjava.util.function.Supplier;publicclassTester{publicstaticvoidmain(String[]args){Optional<String>optional1=Optional.of("Mahesh");Supplier<Optional<String>>supplierString=()->Optional.of("NotPresent");optional1=optional1.or(supplierString);optional1.ifPresent(x->System.out.println("Value:"+x));optional1=Optional.empty();optional1=optional1.or(supplierString);optional1.ifPresent(x->System.out.println("Value:"+x));}}

输出

Value:MaheshValue:NotPresent

上述内容就是Java中Optional类的作用是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注本站行业资讯频道。

optional
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477