《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一1.7.2 不适合使用Optional值的方式

1.7.2 不适合使用Optional值的方式

如果没有正确地使用Optional值,那么相比较以往的得到“某物或null”的方式,你并没有得到任何好处。
get方法会在Optional值存在的情况下获得其中包装的元素,或者在不存在的情况下抛出一个NoSuchElementException对象。因此,

java.util.Optional 8

  • T get()
    产生这个Optional的值,或者在该Optional为空时,抛出一个NoSuchElement Exception对象。
  • boolean isPresent()
    如果该Optional不为空,则返回true。
时间: 2024-08-30 13:09:30

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一1.7.2 不适合使用Optional值的方式的相关文章

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一导读

前 言 致读者 本书是按照Java SE 8完全更新后的<Java核心技术 卷Ⅱ 高级特性(原书第10版)>.卷Ⅰ主要介绍了Java语言的一些关键特性:而本卷主要介绍编程人员进行专业软件开发时需要了解的高级主题.因此,与本书卷Ⅰ和之前的版本一样,我们仍将本书定位于用Java技术进行实际项目开发的编程人员. 编写任何一本书籍都难免会有一些错误或不准确的地方.我们非常乐意听到读者的意见.当然,我们更希望对本书问题的报告只听到一次.为此,我们创建了一个FAQ.bug修正以及应急方案的网站http:/

Java核心技术 卷Ⅰ 基础知识(原书第10版)

Java核心技术系列 Java核心技术 卷Ⅰ 基础知识 (原书第10版) Core Java Volume I-Fundamentals (10th Edition) [美] 凯S.霍斯特曼(Cay S. Horstmann) 著 周立新 陈 波 叶乃文 邝劲筠 杜永萍 译 图书在版编目(CIP)数据 Java核心技术 卷Ⅰ 基础知识(原书第10版) / (美)凯S. 霍斯特曼(Cay S. Horstmann)著:周立新等译. -北京:机械工业出版社,2016.8 (Java核心技术系列) 书

《面向对象的思考过程(原书第4版)》一 第2章 如何以面向对象的方式进行思考

本节书摘来自华章出版社<面向对象的思考过程(原书第4版)>一书中的第2章,[美] 马特·魏斯费尔德(Matt Weisfeld) 著黄博文 译更多章节内容可以访问"华章计算机"公众号查看. 第2章 如何以面向对象的方式进行思考 在第1章中,我们学习了面向对象(OO)的基本概念.本书的其他部分会深入讲解这些概念,也会介绍其他的一些知识.不管是否是面向对象的设计,出色的设计都需要考量很多因素.面向对象设计的基本单位是类.面向对象设计渴望的结果是一个健壮实用的对象模型,换句话说,

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一第3章 XML

第3章 XML ▲ XML概述 ▲ 使用命名空间 ▲ 解析XML文档 ▲ 流机制解析器 ▲ 验证XML文档 ▲ 生成XML文档 ▲ 使用XPath来定位信息 ▲ XSL转换 Don Box等人在其合著的<Essential XML>(Addison-Wesley出版社2000年出版)的前言中半开玩笑地说道:"可扩展标记语言(Extensible Markup Language,XML)已经取代了Java.设计模式.对象技术,成为软件行业解决世界饥荒的方案."确实,正如你将在

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一1.6 简单约简

1.6 简单约简 现在你已经看到了如何创建和转换流,我们终于可以讨论最重要的内容了,即从流数据中获得答案.我们在本节所讨论的方法被称为约简.约简是一种终结操作(terminal operation),它们会将流约简为可以在程序中使用的非流值. 你已经看到过一种简单约简:count方法会返回流中元素的数量. 其他的简单约简还有max和min,它们会返回最大值和最小值.这里要稍作解释,这些方法返回的是一个类型Optional的值,它要么在其中包装了答案,要么表示没有任何值(因为流碰巧为空).在过去,

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一1.7.3 创建Optional值

1.7.3 创建Optional值 到目前为止,我们已经讨论了如何使用其他人创建的Optional对象.如果想要编写方法来创建Optional对象,那么有多个方法可以用于此目的,包括Optional.of(result)和Optional.empty().例如, ofNullable方法被用来作为可能出现的null值和可选值之间的桥梁.Optional.ofNullable(obj)会在obj不为null的情况下返回Optional.of(obj),否则会返回Optional.empty().

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一1.7.4 用f?latMap来构建Optional值的函数

1.7.4 用f?latMap来构建Optional值的函数 假设你有一个可以产生Optional对象的方法f,并且目标类型T具有一个可以产生Optional对象的方法g.如果它们都是普通的方法,那么你可以通过调用s.f().g()来将它们组合起来.但是这种组合没法工作,因为s.f()的类型为Optional,而不是T.因此,需要调用: 如果s.f()的值存在,那么g就可以应用到它上面.否则,就会返回一个空Optional. 很明显,如果有更多的可以产生Optional值的方法或Lambda表达

《Java语言导学(原书第6版)》一导读

前 言 自2010年年初Oracle公司收购Sun公司以来,Java语言迎来激动人心的时代.正如Java Community Process计划的活动所印证的,Java语言将不断发展.本书基于Java SE 8(Java Platform Standard Edition 8)并引用其API. 相比本书第5版(针对的是Java版本7),第6版有一些新特点: Lambda表达式使得功能可作为方法参数使用,代码作为数据使用.Lambda表达式描述单个方法接口(也称为功能接口)的实例会更简洁.4.4.

《Java语言导学(原书第6版)》一1.4 常见问题(及其解决方案)

1.4 常见问题(及其解决方案) 1.4.1 编译器问题 该错误消息说明Windows系统没有找到编译器(javac).有一个办法可以解决该问题.假设JDK安装在目录C:\jdk 1.8.0下.在提示符下输入下述命令并按回车键: 这样设置后,每次编译或运行程序时,都要执行命令C:\jdk1.8.0\bin\javac或C:\jdk1.8.0\bin\java.更新PATH变量可避免这种重复输入,详情参考<JDK 8安装指南>. 该错误消息说明编译时忘记输入.java后缀.切记,编译命令是jav