Java 10 - Optional类新方法

这篇具有很好参考价值的文章主要介绍了Java 10 - Optional类新方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

package com.lfsun.java10study;

import java.util.Optional;

public class OptionalExample {

    public static void main(String[] args) {

        Optional<String> optional = Optional.of("Hello");


        optional.ifPresentOrElse(
                // 如果有值时执行
                s -> System.out.println(s += " World!"),
                // 如果无值时执行
                () -> {
                    System.out.println("无值时执行的逻辑");
                }
        );

        // 打印 "Present"


        // 如果optional present则值为"Hello",否则为0
        String value = optional.or(() -> Optional.of("0")).get();
        System.out.println(value);


        //将optional转换为Stream
        Optional<String> any = optional.stream().filter(s -> s.length() > 3).findAny();
        System.out.println(any);


        // 使用flatMap()将字符串转换为数字,字符串格式错误会返回空
        optional = Optional.of("5");
        int num = optional.flatMap(s -> {
            try {
                return Optional.of(Integer.parseInt(s));
            } catch (NumberFormatException e) {
                return Optional.empty();
            }
        }).orElse(0);
        System.out.println(num);

        // num 是 5

        // 将optional变空
        optional = Optional.empty();

        // 现在ifPresentOrElse()打印"Absent"
        optional.ifPresentOrElse(
                ifPresentOrElse -> System.out.println("hello"),
                () -> System.out.println("Absent"));

    }
}

文章来源地址https://www.toymoban.com/news/detail-546955.html

到了这里,关于Java 10 - Optional类新方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java新特性:Optional类

    Java新特性:Optional类 Optional 类是 Java 8 才引入的,Optional 是个容器,它可以保存类型 T 的值,或者仅仅保存 null。Optional 提供了很多方法,这样我们就不用显式进行空值检测。Optional 类的引入很好的解决空指针异常。 Java 8 引入 Optional 类,用来解决 NullPointerException。 Optional 代

    2024年02月16日
    浏览(30)
  • 在Java中正确使用Optional

    Optional类是在Java 8中引入的,用于解决NullPointerException的问题。 java.util.Optional类是一个泛型类型的类,只包含一个类型为T的值。其目的是提供对可能为null的类型T的引用对象的更安全的替代方案。但是,只有在正确使用的情况下,Optional对象才是安全的。 创建Optional对象的方式

    2024年01月16日
    浏览(24)
  • 【Java基础教程】(三十一)常用类库篇 · 第一讲:Optional类——解锁Java的Optional操作,消灭那些隐匿的空指针,还程序世界一个安稳!~

    Optional 类是Java 8引入的新特性,旨在解决空值( null )的处理问题 。它的设计目的是为了提供一种更好的方式来处理可能为空的值,避免使用 null 导致空指针异常。 Optional 是一个容器对象,可以持有某个类型的非空值或者空值。它是一个包装类,用于替代可能为空的引用变

    2024年02月15日
    浏览(32)
  • 《Java黑皮书基础篇第10版》 第11章【习题】

    11.2章节习题 11.1 下面说法是真是假? 一个子类是父类的子集 不是,子类可以拥有父类的数据域和方法,还可以拥有自己独有的数据域和方法 11.2 使用什么来定义一个子类? extends 11.3 什么是单一继承?什么是多重继承? Java支持多重继承吗? 单一继承是一个子类只能有一个父

    2024年02月06日
    浏览(27)
  • 详细分析Java中的Optional类以及应用场景

    在实战中学习,灵活运用每个操作类,具体如下: 源码主要如下: 大致含义如下: 这是一个容器对象,可能包含或不包含非空值。如果有值存在,isPresent() 方法将返回 true,而 get() 方法将返回该值。 提供了一些依赖于包含值的存在或缺失的其他方法,例如 orElse()(如果值不

    2024年04月27日
    浏览(26)
  • Java8新特性:Optional类(超详解)

    本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远! 到目前为止,臭名昭著的 空指针异常 是导致Java应用程序失败的最常见原因。以前,为了解决空指

    2023年04月09日
    浏览(32)
  • 从头学Java17-Stream API(二)结合Record、Optional

    Stream API 是按照map/filter/reduce方法处理内存中数据的最佳工具。 本系列教程由Record讲起,然后结合Optional,讨论collector的设计。 Java 语言为您提供了几种创建不可变类的方法。可能最直接的是创建一个包含final字段的final类。下面是此类的示例。 编写这些元素后,需要为字段添

    2024年02月12日
    浏览(31)
  • 7.11 Java方法重写

    7.11 Java方法重写 这里首先要确定的是重写跟属性没有关系 ,重写都是方法的重写,与属性无关 带有Static修饰的方法的重写实例 父类实例 子类实例 主程序实例 不带Static的方法的重写 在IDEA中可以使用alt+insert快捷键实现快速插入方法的重写如图 选择相应的父类

    2024年02月12日
    浏览(23)
  • 【JDK版本差异】Optional.requireNonNullElseGet在JAVA8中的替代表述

    Objects.requireNonNullElseGet 是 Java 9 引入的方法,不在 Java 8 中可用。但是, 可以使用 Java 8 的一些功能来模拟类似的效果。 JDK9以上表述: JDK8中的表述: 在Java9中,该方法本质上就是在 obj 为空的时候,接收一个 Supplier 参数,生成一个默认值。 在 Java 8 中,可以使用 Optional 类的

    2024年02月12日
    浏览(47)
  • Win10 IE11浏览器,您正在查看的页使用 Java,Microsoft 网站提供有关 Java 支持的更多信息 解决

    最近工作需要支持下IE11浏览器,使用java applet控件。 以前IE10及以下版本都比较正常,但是IE11会出现一些比较奇怪的现象。 记录下解决的方法和过程,便于有需要的同学自取。 1.首先是报错,如下图所示;这个网上搜索了较多的资料,分析下来核心的原因是浏览器未启用ja

    2024年02月09日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包