美文网首页
六号线晚报0614

六号线晚报0614

作者: z0nk1n | 来源:发表于2018-06-14 16:30 被阅读0次

天气: 风力:

java.util.Optional

Optional是一个是否含有非空值的容器,如果有值ifPresent()方法会返回true,如果没有值optional对象就被当作空的,ifPresent()方法会返回false。
另外提供了一些和是否有值相关联的方法,如orElse(Object)和orElse() 如果没有值则返回默认值。
因为Opetional是一个基于值的类,所以用于一些身份敏感的例如==、hashcode、synchronization等操作可能出错,因此应当避免在以上操作中使用。(这些操作使用的是对象的引用)
Optional用来接收一个方法可能返回null的情况,因为null可能造成错误。Optional类型的变量不可以为null,应当始终表示一个Optional实例。

  • public void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)
    值不为空执行action,为空执行emptyAction
  • public Optional<T> filter(Predicate<? super T> predicate)
    如果有值返回满足predicate条件的optional否则返回空optional
  • public <U> Optional<U> map(Function<? super T, ? extends U> mapper)
    如果有值返回mapper方法的结果,否则返回空optional。
    map方法支持对值的后处理,不需要显式判断返回值的状态。例如以下的例子,遍历了uris流,选择没有处理过的,并使用这个uri创建Path对象,返回Optional(Path)实例
Optional<Path> p = uris.stream().filter(uri -> !isProcessedYet(uri)).findFirst().map(Paths::get);
  • public <U> Optional<U> flatMap(Function<? super T, ? extends Optional<? extends U>> mapper)
    如果有值返回返回操作Optional的mapper方法的结果,否则返回空optional。flatMap和map方法相似,但是flatMap处理的是本来就是Optional的数据,并且不会做额外的封包
  • public Optional<T> or(Supplier<? extends Optional<? extends T>> supplier)
    如果有值返回optional,否则返回supplier的返回值
  • public Stream<T> stream()
    如果有值返回只包括这一个值的流,否则返回空流

相关文章

  • 六号线晚报0614

    天气: 风力: java.util.Optional Optional是一个是否含有非空值的容器,如果有值ifPr...

  • 六号线晚报

    终于我也坐了六号线

  • 六号线晚报0606

    天气:晴 风力:微风 会计政策、会计估计及其变更 1.会计政策 会计政策,是指企业在跨级确认、计量和报告中所采用的...

  • 六号线晚报0528

    天气:晴 风力:微风 为什么要 & 0xFF byte类型的数字要&0xff再赋值给int类型,其本质原因就是想保...

  • 六号线晚报0529

    天气:阴转晴 风力:微风 byte组合byte[] System.arraycopy() Arrays.copyO...

  • 六号线晚报0604

    天气:晴 风力:无风 tools.jar ---> javac 第一次遇到有项目里用到了tools.jar包,稍微...

  • 六号线晚报0527

    天气:阴 风力:微风 Java时间处理Java8 time包 未完待续

  • 六号线晚报0522

    天气:多云 风力:微风 回调 把实现回调接口的类对象传递到方法里面再利用此对象执行操作异步,即在在方法里启动另一...

  • 六号线晚报0523

    天气:晴 风力:微风 callable 1.callable是一个可以带返回值的多线程接口,类似runnable,...

  • 六号线晚报0524

    天气:晴 风力:无风 java十六进制转各种形式

网友评论

      本文标题:六号线晚报0614

      本文链接:https://www.haomeiwen.com/subject/wjryeftx.html