`
nid007
  • 浏览: 44220 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java8学习-Optional

    博客分类:
  • java
阅读更多
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是类似的,就不一一举例了
分享到:
评论

相关推荐

    java8源码-Java8-Learning:Java8-学习

    java8 源码 Java8-Learning JAVA8新特性 Optionals: Optional不是函数式接口,而是用于防止NullPointEXception的漂亮工具。Optional是一个简单的容器,其值可能是null或者不是null。在Java8之前一般某个函数应该...

    java8源码-stu-java8:stu-java8

    java8学习 这个项目是我阅读了《java8实战》这本书,根据书籍提供的源码做了一些修改注释,用于以后查阅复习使用 lambda表达式 basics 流的构建与遍历 筛选与切片 映射 查找和匹配 归约 排序 示例/应用 collector(用...

    java8stream源码-java-8-new-features:学习Java8新特性的练习。GL目标演示的一部分

    java8流源码Java 8 新特性示例 大多数示例都基于《现代 Java 实战》一书 [1]。 Java Magazine [2] 中提供了更详细的选项示例。 The Java Tutorials [3] 中描述了使用 lambda 的类似“行为参数化”方法。 项目结构 ...

    java8源码-guava-demo:番石榴演示

    重叠的功能,类似Java8有Collections,Arrays,Optional,StringUtils,Stream,Consumer等。所以在Java中没有所需要的 工具类封装时参考Guava的相关实现是一个不错的选择。学习心得如下: 1.字符串集合转换相关(Joiner,...

    Java如何使用Optional与Stream取代if判空逻辑(JDK8以上)

    主要给大家介绍了关于Java如何使用Optional与Stream取代if判空逻辑(JDK8以上)的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    Java8深入学习之熟透Optional

    主要给大家介绍了关于Java8深入学习之熟透Optional的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Java8具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    JAVA Optional类用法分享

    本篇文章主要给大家分析了JAVA中Optional类用法以及代码分析,跟着小编学习下吧。

    全网详解(波哥)Java8新特性(Lambda、Stream、LocalDate等)新特性

    自学java的同行们应该都要学习java8的新特性,譬如:(Lambda、Stream、LocalDate等)!本人在学习java的时候看的是波哥的视频,确实讲的不错,很详细!系统的讲述了Lambda、Stream、LocalDate等)新特性的使用。在...

    java8stream源码-java-learning:java学习

    java8流源码Java8InAction 该存储库包含 Java 8 实战:Lambdas、Streams 和函数式编程一书中示例和测验的所有源代码。 您可以在这里购买这本书:或在亚马逊上 所有示例的源代码都可以在目录中找到 第 1 章:Java 8:...

    java8-learn:jdk8学习dome

    java8-learn 项目介绍 jdk8学习dome lambda streamAPI Optional 其他 注解增强 ... 持续更新

    java8新特性之Optional的深入解析

    主要给大家介绍了关于java8新特性之Optional的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    java8stream源码-learn-java8:java8新特性学习

    java8流源码Java8InAction 该存储库包含 Java 8 实战:Lambdas、Streams 和函数式编程一书中示例和测验的所有源代码。 您可以在这里购买这本书:或在亚马逊上 所有示例的源代码都可以在目录中找到 第 1 章:Java 8:...

    JAVA8的新特性学习笔记

    该笔记主要记录了学习Java8新增特性的全部信息,包含概念讲解及代码示例,主要针对Lambda表达式、函数式接口、方法引用及构造器引用、Stream API、Optional类几个模块深入浅出的介绍了各个模块的使用。希望对大家的...

    Java8 Optional原理及用法解析

    主要介绍了Java8 Optional原理及用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Java8新特性及实战视频教程完整版.txt

    Java8是Java发布以来改动最大的一个版本,其中主要添加了函数式编程、Stream、一些日期处理类。 函数式编程中中新加了一些概念:Lambda表达式、函数式接口、函数引用、默认方法、Optional类等;Stream中提供了一些...

    java8函数式编程学习源码

    java8 lambda 函数式接口 Stream流 并行流 Optional 方法引用

    Java8中Optional类型和Kotlin中可空类型的使用对比

    主要给大家介绍了关于Java8中Optional类型和Kotlin中可空类型的使用对比,文中通过示例代码给大家介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

    还在用if(obj!=null)做非空判断,带你快速上手Optional

    主要介绍了还在用if(obj!=null)做非空判断,带你快速上手Optional,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Java8新特性之空指针异常的克星Optional类的实现

    主要介绍了Java8新特性之空指针异常的克星Optional类的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Java用optional取代null.pdf

    像这样的日志代码会更好: if (log.isLoggable(Level.FINE)) { log.log(Level.FINE, "I am here, and the value of X is {} and Y is {}", ...——参考资料:仅个人学习,未详尽测试,请自行调试!!

Global site tag (gtag.js) - Google Analytics