详细分析Java中的Optional类以及应用场景

2024-06-01 1272阅读

目录

  • 前言
  • 1. 基本知识
  • 2. 常用API
  • 3. Demo
  • 4. 应用场景

    前言

    在实战中学习,灵活运用每个操作类,具体如下:

    详细分析Java中的Optional类以及应用场景

    1. 基本知识

    源码主要如下:

    详细分析Java中的Optional类以及应用场景

    大致含义如下:

    这是一个容器对象,可能包含或不包含非空值。如果有值存在,isPresent() 方法将返回 true,而 get() 方法将返回该值。

    提供了一些依赖于包含值的存在或缺失的其他方法,例如 orElse()(如果值不存在,则返回默认值)和 ifPresent()(如果存在值,则执行一段代码块)。

    这是一个基于值的类;在 Optional 实例上使用依赖于身份的操作(包括引用相等性(==)、身份哈希码或同步)可能会产生不可预测的结果,应该避免使用。

    自 Java 1.8 起。

    用开发的角度来讲,该类是 Java 8 中引入的一个用于处理可能为 null 的值的容器类。

    它的设计目的是为了解决在代码中频繁出现的空指针异常问题。

    不过这个类有好有坏,适当使用即可,其缺点就是造成代码过于冗长(= - = )

    最主要是引入额外的对象开销。

    了解基本的特性以及薄弱项之后,站在后端的角度灵活运用其API以及常用方法

    2. 常用API

    创建Optional的对下你个有以下三种方式:

    1. Optional.of(value): 创建一个包含非空值的 Optional 对象

      如果传递的值为 null,会抛出 NullPointerException

    Optional nonNullOptional = Optional.of("Hello, World!");
    
    1. Optional.ofNullable(value): 创建一个 Optional 对象,如果传递的值为 null,仍然会创建一个空的 Optional 对象
    Optional optional = Optional.ofNullable(someNullableValue);
    
    1. Optional.empty(): 创建一个空的 Optional 对象
    Optional emptyOptional = Optional.empty();
    

    👇

    常用的操作方法如下:

    1. isPresent(): 判断 Optional 对象是否包含非空值
    if (optional.isPresent()) {
        // 做一些操作
    }
    
    1. ifPresent(Consumer
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]