首页 > 编程语言 >《Java核心技术II》获取Optional值

《Java核心技术II》获取Optional值

时间:2025-01-02 14:25:43浏览次数:3  
标签:Java String java System II import Optional startsWithQQQ

Optional类型

Optional对象是一种包装器对象,要么包装类型T的对象(称为存在的),要么没有包装任何对象。

获取Optional值

有效的使用它要用这样的方法

它在值不存在的情况下会产生一个可替代物,而只有值在存在的时候才会使用这个值。

策略一:没有任何 匹配时,使用默认值,可能是空字符串。

String result = optionalString.orElse("");

策略二:调用代码来计算默认值

String result = optionalString.orElseGet(()->System.getProperty(myapp.default));

策略三:可以在没有任何值时抛出异常

String result = optionalString.orElseThrow(IllegalStateException::new);

综合案例OptionalOrElse
package streams.optional;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import java.util.Optional;

public class OptionalOrElse {

    public static void main(String[] args) throws IOException {
        //Path相对路径是指JavaCore2
        var contents = Files.readString(Path.of("./resources/alice.txt"));
        List<String> words = List.of(contents.split("\\PL+"));
        //orElse
        Optional<String> startsWithQQQ = words.stream().filter(s->s.startsWith("QQQ")).findFirst();
        System.out.println("startsWithQQQ: "+startsWithQQQ.orElse(""));
        //orElseGet
        System.out.println("startsWithQQQorElseGet: "+startsWithQQQ.orElseGet(() -> System.getProperty("java.home")));
        //orElseThrow
        System.out.println("startsWithQQQorElseThrow: "+startsWithQQQ.orElseThrow(IllegalArgumentException::new));
    }

}

标签:Java,String,java,System,II,import,Optional,startsWithQQQ
From: https://blog.csdn.net/qq_36324341/article/details/144886048

相关文章

  • 《Java核心技术II》消费Optional值
    消费Optional值可选值存在的情况下消费该值ifPresent,接受一个函数,存在则传递,否则不发生事情optionalValue.ifPresent(v->Processv);值存在,添加到集合中:optionalValue.ifPresent(v->results.add(v));或者直接调用:optionalValue.ifPresent(result::add);ifPresentOrEl......
  • 大二Web课程设计——张家界旅游网站设计与实现(HTML+CSS+JavaScript) (2)
    ......
  • java开发
    常见问题01.java字符串split能否排除单引号或者双引号中的\n在Java中,String.split()方法并不能直接忽略字符串中引号(单引号或双引号)内的换行符。为了实现这个功能,你可以使用正则表达式,在分割字符串时排除引号内的换行符。解决方案:使用正则表达式排除引号中的换行符......
  • 利用Java爬虫获取亚马逊国际按关键字搜索商品的实践指南
    在数字化时代,数据的价值日益凸显,尤其是对于电商领域。亚马逊作为全球领先的电商平台,其商品信息的获取对于市场分析、价格比较、库存管理等有着重要的意义。本文将介绍如何使用Java编写爬虫,以获取亚马逊国际站点上按关键字搜索的商品信息,并提供详细的代码示例。1.项目结构和......
  • 利用Java爬虫获取店铺所有商品:技术实践与应用指南
    在电子商务的世界里,数据的获取和分析是企业获取市场洞察、优化营销策略的关键。对于电商平台上的店铺而言,掌握所有商品的信息对于库存管理、销售分析等方面至关重要。本文将带你深入了解如何使用Java编写爬虫程序,以获取特定店铺的所有商品信息,为你的电商数据分析提供强有力的支......
  • 让 Java 再次伟大 - 你不知道的 Java 之集成 Docker 的那些密事(一章节)
    学会这款全新设计的Java脚手架,从此面试不再怕!Docker的底层实现原理Docker是一种容器服务,为了方便理解你可以认为他是一个轻量级的虚拟机。通过Docker创建的容器,在宿主机上共享硬件资源和底层系统与接口,同时又能提供互相隔离的应用程序环境。这是怎么做到的?由于......
  • 【Java项目】基于SpringBoot+Vue的CSGO赛事管理系统
    源码获取:https://download.csdn.net/download/u011832806/89461573基于SpringBoot+Vue的CSGO赛事管理系统开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis+Vue.js工具:IDEA/Ecilpse、Navicat、Maven系统演示视频:链接:https://pan.baidu.com/s/109zhbBkTfpLZJx0Twg2afg?pw......
  • 【Java项目】基于SpringBoot+Vue的洪涝灾害应急信息管理系统的设计与实现(源码+LW+包运
    源码获取:https://download.csdn.net/download/u011832806/90001545基于SpringBoot+Vue的洪涝灾害应急信息管理系统开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis+Vue.js工具:IDEA/Ecilpse、Navicat、Maven洪涝灾害应急信息管理系统是一个综合性的信息平台,旨在提供实时......
  • Cause: java.sql.SQLDataException: ORA-01841: (完整) 年份值必须介于 -4713 和 +999
    报错信息:###Theerrormayexistinfile[E:\IdeaProjects\FeiShuEHR\target\classes\mapper\ZzzHrOaQingJiaMapper.xml]###TheerrormayinvolvedefaultParameterMap###Theerroroccurredwhilesettingparameters###SQL:SELECTDANHAO,A0190,LEAVE_TYPEI......
  • 【转型大模型必看】Java开发者能否转型大模型?程序员的逆袭秘籍,转行不再是梦
    随着技术的不断进步,人工智能(AI)大模型已经成为当今科技领域最热门的话题之一。许多开发者开始考虑从传统的软件开发领域,如Java,转向人工智能领域,今天小编和大家一起来探讨Java开发者是否可以转型到人工智能大模型,转型的优势,薪资对比,以及转型所需的知识和学习路线等。01Java......