前面我们一直使用给到的Optional对象进行操作,今天实现自行创建和转化流
创建optional流
生成一个optional,如果传入的值为空,则返回空optional对象
1
| Optional<String>optionalelse=Optional.ofNullable("b");
|
生成一个optional,如果传入的值为空,生成一个optional,如果传入的值为空,则抛出空指针异常
1
| Optional<String>optional=Optional.of("a");
|
生成一个空的optional
1
| Optional<String>empty=Optional.empty();
|
生成一个由多个optional组成的optional流
flatmap会将流组合起来,如果流为空,忽略,不为空则组合
1
| Optional<String>result= Optional.of("a").flatMap(s->Optional.of("b"));
|
optional转换为流
- 当入参类型和返回类型一致时,可以::
- stream方法会将optional对象转换为流,如果optional为空,则返回空流
1 2 3
| String[] arr={"a","b","c"}; Stream<String>arrStream=Arrays.stream(arr); Stream<String>resultStream=arrStream.map(Optional::of).flatMap(Optional::stream);
|