Optional是一个精巧的工具接口,用来防止NullPointerException产生。Optional是泛型的,除了Optional, java8还提供了OptionalDouble, OptionalInt, OptionalLong三个原生类型的类, 都在java.util包下面。
Optional是一个简单的值容器,这个值可以是null,也可以是non-null。考虑到一个方法可能会返回一个non-null的值,也可能返回一个空值。为了不直接返回null,我们在Java 8中就返回一个Optional。
Optional的构造函数是私有的,我们没有办法new一个Optional,而要通过Optional.of静态方法来创建。
参考下面的代码:
private static void testOptional() {
Optional<String> name = getName();
name.ifPresent(System.out::println);//这一行跟下面的代码是同样的功能
/*if(name.isPresent()){
System.out.println(name.get());
}*/
}
static Optional<String> getName(){
boolean ok=false;
//do something
if(ok){
return Optional.of("ok");
}else{
return Optional.empty();
}
}
OptionalDouble, OptionalInt, OptionalLong跟Optional是类似的,就不一一举例了
分享到:
相关推荐
这个名为"Java-8-jar包"的压缩文件,可能包含了JDK 1.8.0_181的安装包,这是一个重要的Java开发环境。 1. **Lambda表达式**:Java 8引入了Lambda表达式,简化了函数式编程。Lambda允许开发者以更简洁的方式定义匿名...
**JAVA8 API 中文官方文档概述** JAVA8 API 是Java开发者的重要参考资料,它详细阐述了Java 8平台的核心类库,包括各种接口、类...通过学习和应用这些知识,开发者可以编写出更加高效、简洁的Java代码,提升软件质量。
在这个名为"JAVA-8-261.zip"的压缩包中,我们可以推测它包含了与Java 8相关的学习资料或者示例代码。下面将详细探讨Java 8的关键特性。 1. **函数式编程**: Java 8引入了函数式编程的概念,最显著的体现是添加了...
Java 8,也被称为JDK 8,是Java发展历程中的一个重要里程碑,引入了许多创新特性,极大地提升了开发效率和代码质量。以下将详细讲解Java 8的一些核心新特性: 1. **lambda表达式**:这是Java 8最显著的特征之一。...
在这个"JavaNew1-8.rar"压缩包中,包含了一份名为"JavaNew1-8.pdf"的文档,它很可能是针对Java 8的基础教程,适合初学者学习。以下是基于Java 8的一些关键知识点的详细介绍: 1. **Lambda表达式**:Java 8引入了...
总结来说,“JavaNew1-8.pdf”这份文档很可能详细涵盖了以上Java 8的主要特性,对于学习和理解Java 8的开发人员来说,是一份非常宝贵的参考资料。通过深入学习和实践这些知识点,开发者可以更好地掌握Java 8,写出...
5. **Optional类**:为了解决null值带来的问题,Java 8引入了`Optional`类。它是一个容器对象,可能包含或不包含非null值。这鼓励开发者显式处理缺失值,减少空指针异常。 6. **日期和时间API**:Java 8的`java....
这本学习资料,由 Marty Hall 编写,内容详实,并且还提供了丰富的实例代码、练习以及答案,是学习 Java 8 Streams 非常有价值的文档。 Marty Hall 不仅是这本教材的作者,还是多本流行的 Java EE 图书的作者,以及...
6. **Optional类**:为了解决null安全问题,Java 8引入了`Optional<T>`类。它是一个容器对象,可能包含或不包含非null值。这样可以避免空指针异常,鼓励显式处理缺失值。 7. **默认方法**:在接口中添加默认方法,...
"jdk-8u281-windows-x64.exe" 是Java 8更新281的64位Windows安装程序,用于在Windows操作系统上安装Java运行环境和开发工具。 Java 8的重要特性包括: 1. **lambda表达式**:这是Java 8最显著的新特性之一,它引入...
这份"Java8-API-中文文档-完整版"是学习和理解这些新特性的宝贵资源,它涵盖了Java 8的全貌,包括核心库、语言特性和API改进。 1. **函数式编程**: - **Lambda表达式**:Java 8引入了lambda表达式,使得编写简洁...
13. **Java新特性**:讨论Java 8及更高版本引入的新特性,如Lambda表达式、Stream API、Optional类等。 通过《Java面试宝典 - v1.1》的学习,开发者不仅可以巩固Java基础知识,还能深入了解Java在实际项目中的应用...
Java 8引入了Optional类,可以更好地避免空指针异常。全局异常处理器则可以统一处理未被捕获的异常。 以上仅是对“pay-java-parent-develop”项目中可能涉及的关键知识点的概述,实际项目会根据具体需求和技术选型...
Java JDK API 1.8是Java开发工具包的一个重要版本,包含了Java编程语言的...通过学习和熟练使用Java JDK API 1.8,开发者可以充分利用Java 8的特性,提高代码质量和开发效率,同时也能更好地理解和维护现有的Java项目。
这个“java学习软件安装包(二)_jdk-8u181-windows-x64”是针对Windows 64位系统的Java Development Kit (JDK) 的版本,它包含了编写、编译和运行Java应用程序所需的所有组件。 JDK是Java开发的核心组件,由Sun ...
总的来说,《Java JDK API 1.8 中文版》涵盖了这些核心变更和更多细节,为开发者提供了全面的参考,无论是在学习还是在实际项目开发中,都是不可或缺的工具。通过深入理解和熟练运用这些API,开发者可以更好地利用...
通过学习以上这些Java 8的关键特性,你将能够充分利用Java 8的新功能,编写出更加优雅、高效的代码。《Java 8 in Action》这本书是一个很好的学习资源,它不仅介绍了这些特性的使用,还深入解释了它们的设计理念和...
java8 源码 Java8-Learning JAVA8新特性 Optionals: Optional不是函数式接口,而是用于防止NullPointEXception的漂亮工具。Optional是一个简单的容器,其值可能是null或者不是null。在Java8之前一般某个函数应该...
- **lambda表达式**: Lambda表达式是Java 8引入的一项重要特性,它允许我们以简洁的方式表示功能接口的实现。了解如何使用lambda表达式进行函数式编程,是这个阶段的重要内容。 - **Stream API**: Stream API提供...
本篇幅将详细解析Java 8的主要知识点,为学习Java 8新特性的同学提供全面的指导。 1. **函数式编程**:Java 8引入了对函数式编程的支持,主要体现在Lambda表达式和函数式接口上。Lambda表达式允许开发者以简洁的...