遵义建设厅网站官网搞一个网站花多少钱

news/2025/10/8 23:09:47/文章来源:
遵义建设厅网站官网,搞一个网站花多少钱,广州最穷的三个区,华贸中心网站谁做的文章目录 1. 大概说明2. 详细分析2.1 .orElse 操作2.2 .orElse 的作用#xff1a;避免空指针异常2.3 为什么要用#xff1f;2.4 orElseGet如何使用2.5 orElse和orElseGet的区别 1. 大概说明 这篇文章的目的是为了说明#xff1a; orElse 如何使用orElseGet 如何使用两者的… 文章目录 1. 大概说明2. 详细分析2.1 .orElse 操作2.2 .orElse 的作用避免空指针异常2.3 为什么要用2.4 orElseGet如何使用2.5 orElse和orElseGet的区别 1. 大概说明 这篇文章的目的是为了说明 orElse 如何使用orElseGet 如何使用两者的区别 备注orElse 可能导致 NullPointerException当 orElse 的参数是间接计算得来的时候。虽然这种说法有点牵强因为并不是orElse导致了空指针异常但是使用 orElseGet 确实可以避免这种情况。 2. 详细分析 2.1 .orElse 操作 先看个例子 OptionalString optional Optional.empty(); System.out.println(optional.isPresent); // ----输出false // 返回 false表示 Optional 里没有值。解析 Optional.empty() 代表 一个空的 Optional 实例即 Optional 没有值。Optional.ofNullable(null) 等价于 Optional.empty()。 2.2 .orElse 的作用避免空指针异常 如果 Optional 为空即 Optional.empty()就返回 orElse() 里提供的默认值。如果 Optional 有值就直接返回这个值不执行 orElse() 提供的默认值。 注意不管 Optional 为不为空这个值都会创建只不过为空时才使用 // 举例当Optional为空时orElse()才会触发 String result Optional.ofNullable(null).orElse(默认值); System.out.println(result); // ----输出默认值// 再举个例子 MapLong, ListString map new HashMap(); map.put(1L, Arrays.asList(A, B, C));ListString result Optional.ofNullable(map.get(1L)).orElse(Collections.emptyList()); // 为null就返回 空列表 System.out.println(result); // ----输出[A, B, C] orElse() 没起作用2.3 为什么要用 ListString result Optional.ofNullable(map.get(0L)).orElse(Collections.emptyList()).stream();如果 map.get(0L) null那么 不加 .orElse(Collections.emptyList()) → .stream() 会报 NullPointerException ❌加了 .orElse(Collections.emptyList()) → .stream() 能正常执行 ✅ 2.4 orElseGet如何使用 再来看看 orElseGet 中如何使用 orElseGet 作用获取数据并且设置数据为空时的默认值。如果数据不为空就能获取到该数据如果为空则返回传入的参数来创建对象。 具体的使用案例可看下图 2.5 orElse和orElseGet的区别 orElse() 和 orElseGet() 都是Optional 类中的方法用于在 Optional 为空时提供默认值。但它们的区别在于 默认值的获取方式 1、orElse(T other) 直接传递一个默认值即使 Optional里有值也会创建 other 对象但不会使用它适用于默认值创建代价较低的情况 2、orElseGet(Supplier? extends T supplier) 传递的是一个 Supplier懒加载只有需要的时候才会创建接口它是一个函数式接口形式是这样的()-{ return computedResult }即入参为空有返回值任意类型的仅当 Optional 为空时才会执行 supplier.get()不会提前创建默认值适用于默认值创建代价较高的情况 看个例子 class User {// 中文名private String chineseName;// 英文名private EnglishName englishName; }class EnglishName {// 全名private String fullName;// 简写private String shortName; }假如我们现在有 User 类用户注册账号时需要提供自己的中文名或英文名或都提供我们抽象出一个EnglishName 类它包含英文名的全名和简写因为有的英文名确实太长了。现在我们希望有一个User.getName() 方法它可以像下面这样实现 class User {// ... 之前的内容public String getName1() {return Optional.ofNullable(chineseName).orElse(englishName.getShortName());}public String getName2() {return Optional.ofNullable(chineseName).orElseGet(() - englishName.getShortName());} }写了两个版本分别使用 orElse 和 orElseGet。现在你可以看出 getName1() 方法有什么风险了吗它会出现空指针异常吗---- 是的。当用户只提供了中文名时此时 englishName 属性是 null但是在 orElse 中englishName.getShortName()总是会执行。而在 getName2() 中这个风险却没有。 再举个例子 public class Test {public static void main(String[] args) {System.out.println(orElse() 的情况);String result1 Optional.ofNullable(实际值).orElse(test2());System.out.println(最终结果: result1);System.out.println(orElseGet() 的情况);String result2 Optional.ofNullable(实际值).orElseGet(() - test2());System.out.println(最终结果: result2);}public static String test2() {System.out.println(执行昂贵的计算...);return 昂贵默认值;} }输出 orElse() 的情况 执行昂贵的计算... 最终结果: 实际值orElseGet() 的情况 最终结果: 实际值至此文章结束记得点赞收藏评论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/932042.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站开发实训要求建设个读书网站大约需要投入多少钱

在IRC中常见人问起,学C/C,在Linux下用什么工具好。有推荐vi/vim和emacs的,个人认为,那太难为像我们这样的初学者了。印象中,KDE中的KDeveloper非常的不错,简直就跟VC是一样的强大和方便。几年没用过了&…

墨西哥证券交易所(BMV)等多个交易所股票数据API对接文档

本文档详细说明如何对接StockTV全球股票API中的墨西哥股票数据。墨西哥股票市场是拉丁美洲重要的金融市场之一,包含墨西哥证券交易所(BMV)等多个交易所。 认证方式 所有API请求都需要在URL参数中包含API Key: key=您…

Kubernetes技术详解-从理论到实践-(5)-控制器-Deployment - 详解

Kubernetes技术详解-从理论到实践-(5)-控制器-Deployment - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "C…

项目案例作业2

案例中的 setter/getter 模式与封装性(姓名:周广磊 学号:202421336092) 2.1 什么是 setter/getter? setter 方法(也称为修改器方法)和 getter 方法(也称为访问器方法)是面向对象编程中用于操作类私有属性的公…

P5664 [CSP-S2019] Emiya 家今天的饭 题解

题目传送门 洛谷 P5664 前言 本题解为作者整合了自己学习其他题解后为自己写的用以复习的笔记,不喜勿喷谢谢,但是有逻辑错误或语言不清晰之处欢迎提出! 题目描述 Emiya 是个擅长做菜的高中生,他共掌握 \(n\) 种烹饪…

网站建设艾瑞市场分析英国设计网站

目录 Optional 的方法 Optional实例 《天道》丁元英经典语录 所谓真经,就是能够达到寂空涅盘的究竟法门。可悟不可修。修为成佛,在求。悟为明性,在知。修行以行制性。悟道以性施行。觉者由心生律;修者以律制心,不落恶果者有信无证,住因住果,住念住心,如是生灭。不昧…

谷歌网站开发用什么框架next wordpress

近日,JetBrains 对外发布两项重要产品更新:专为云端和其他服务器打造的远程开发解决方案,以及轻量级编辑器Fleet。 为IntelliJ 平台引入远程开发支持 在近期陆续发布的2021.3 版本的各 IDE 中,JetBrains 向 IntelliJ 平台添加了远…

PWN手的成长之路-11-CISCN 2019华北 PWN1-栈溢出

远程连接以下靶机,看看交互。file 查看程序文件。checksec 查看程序文件安全属性。开启了 NX 保护,栈上不可执行。IDA 打开程序文件。查看 ain 函数,发现调用了 func 函数。查看 func 函数。这里需要判断 v2 是否等…

sensitive-word:一个简单易用的敏感词过滤框架

这篇文章,分享一个开源项目:sensitive-word 。Github 地址:https://github.com/houbb/sensitive-wordsensitive-word 是一个功能强大的 Java 敏感词过滤框架,它不仅提供了基础的敏感词检测功能,还支持单词标签分类…

回归学习——包机制

回归学习 包机制 包的本质就是文件夹,用来区别类名的命名空间。一个文件在写的时候要把包写在最前面,一般利用公司倒置作为包名,为了能够使用一个包的成员,我们需要在Java程序中明确导入该包,方式为使用‘import语…

哈尔滨中小企业网站制作长沙知名网站

无论是前面学习的序列式容器,还是关联式容器,要想实现遍历操作,就必须要用到该类型容器的迭代器。当然,map 容器也不例外。C++ STL 标准库为 map 容器配备的是双向迭代器(bidirectional iterator)。这意味着,map 容器迭代器只能进行 ++p、p++、--p、p--、*p 操作,并且迭…

网站建设职责网站源码大全

一、需求 用户输入四个季度的数据&#xff0c;根据数据生成柱形统计图&#xff0c;浏览器预览效果如下 二、完整代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content&q…

wordpress动漫主题秦皇岛seo排名

二叉树相关推荐 107.二叉树的层次遍历II199.二叉树的右视图637.二叉树的层平均值429.N叉树的层序遍历515.在每个树行中找最大值116.填充每个节点的下一个右侧节点指针117.填充每个节点的下一个右侧节点指针II总结 107.二叉树的层次遍历II 切片本质是一个结构体&#xff0c;包含…

vue 组件的常见8种通信方式

1、通过props传递‌,emit触发自定义事件: 父传子:子组件中通过props接收父组件传递的数据。 ‌子传父:子组件通过emit触发一个事件,父组件监听这个事件来接收数据。 vue2:通过props和$emit vue3:script中setup,…

技能训练企业网站建设可行性分析企业网站建设 百度文库

文章目录 参考环境常量数组不可变性版本限制 constdefine()构造大小写不敏感的常量$case_insensitive 参数PHP7.3PHP8 若 define() 在不支持常量数组的版本中运行 参考 项目描述搜索引擎Bing、GoogleAI 大模型文心一言、通义千问、讯飞星火认知大模型、ChatGPTPHP 手册PHP Man…

251008

251008美好的一天从现在开始

vue一键安装

vue一键安装 Microsoft Windows [版本 10.0.26100.4946] (c) Microsoft Corporation。保留所有权利。F:\vue_flask_project\vue_flask_project_one\vue>npm install --global vue-cli npm warn deprecated inflight…

佛山网站建设找哪家wordpress 中文版下载

内联式css样式&#xff0c;直接写在现有的HTML标签中 CSS样式可以写在哪些地方呢&#xff1f;从CSS 样式代码插入的形式来看基本可以分为以下3种&#xff1a;内联式、嵌入式和外部式三种。这一小节先来讲解内联式。 内联式css样式表就是把css代码直接写在现有的HTML标签中&am…

权威的网站建设排行榜男科医院哪家正规医院

模拟伪造请求 方法一&#xff1a;打断点模拟HTTP请求 1、浏览器页面填好内容后&#xff08;不要操作提交&#xff09;&#xff0c;打开fiddler&#xff0c;设置请求前断点&#xff0c;点击菜单fiddler,”Rules”\”Automatic Breakpoints”\”Before Requests” 2、在页面上点…

做网站卖电脑oss cdn wordpress

目录 一、Vite概述 二、Vite构建Vue3工程化项目 三、ViteVue3项目目录结构 四、ViteVue3项目组件&#xff08;SFC入门&#xff09; 五、ViteVue3样式导入方式 六、ViteVue3响应式数据和setup语法糖 一、Vite概述 Vite是一种新型前端构建工具,能够显著提升前端开发体验;Vite结合…