美文网首页工作生活
新特性3-Optional类

新特性3-Optional类

作者: 三秋十里 | 来源:发表于2019-07-04 15:15 被阅读0次

Java 8在java.util包中新增了Optional类,Optional类是一个可以包含或不可以包含非空值的容器对象。每一个Java项目,最主要的重复语句就是检查空指针异常NullPointerException。我们使用任何对象,都需要检查此对象是否为空,如果对象不为空我们才执行处理语句。
Optional类像是一个容器,它保存一个类型为的值或是null值。通过使用Optional类的isPresent()方法,我们可以检查指定的对象是否为空。

Java应用中最常见的bug就是空值异常。在Java 8之前,Google Guava引入了Optionals类来解决NullPointerException,从而避免源码被各种null检查污染,以便开发者写出更加整洁的代码。Java 8也将Optional加入了官方库。
Optional仅仅是一个容易:存放T类型的值或者null。它提供了一些有用的接口来避免显式的null检查,可以参考Java 8官方文档了解更多细节。
接下来看一点使用Optional的例子:可能为空的值或者某个类型的值:

package com.ehking.example.java8.newfeature.demo07;

import java.util.Optional;

/**
 * Created by shiyanwu on 2017/4/14.
 */
public class Java8OptionalDemo {

    public static void main(String[] args) {

        Optional< String > fullName = Optional.ofNullable( null );
        System.out.println( "Full Name is set? " + fullName.isPresent() );
        System.out.println( "Full Name: " + fullName.orElseGet( () -> "[none]" ) );
        System.out.println( fullName.map( s -> "Hey " + s + "!" ).orElse( "Hey Stranger!" ) );

        Optional< String > firstName = Optional.of( "Tom" );
        System.out.println( "First Name is set? " + firstName.isPresent() );
        System.out.println( "First Name: " + firstName.orElseGet( () -> "[none]" ) );
        System.out.println( firstName.map( s -> "Hey " + s + "!" ).orElse( "Hey Stranger!" ) );
        System.out.println();
    }
}

相关文章

  • 新特性3-Optional类

    Java 8在java.util包中新增了Optional类,Optional类是一个可以包含或不可以包含非空值的...

  • day28-JDK578新特性简述

    27.12_JDK5新特性 27.13_JDK5新特性(自己实现枚举类) a:回想单例设计模式:单例类是一个类只有...

  • Java 8 新特性介绍

    Java 8 新特性介绍 新特性分类 语言功能增加特性 API 类库 平台和虚拟机 周边工具 语言功能增加特性 函...

  • C++基础-(继承)

    C++ 基础 概念及工方式 保持已有类的特性而构造新类的过程称为继承。在已有类的基础上新增自己的特性而产生新类的过...

  • C++继承

    概念及工方式 保持已有类的特性而构造新类的过程称为继承。在已有类的基础上新增自己的特性而产生新类的过程称为派生。被...

  • 设计原则——里氏替换原则

    前沿继承:将保持已有类的特性而构造新类的过程称派生:在已有类的基础上新增自己的特性而产生新类的过程称为派生里氏替换...

  • Boolan面向对象上第三周笔记

    一、继承 定义:新的类从已有类那里得到已有特性,原有类称为父类,新类称为子类。 形式: class<派生类名>:<...

  • 继承,多态,虚函数

    1.保持已有类的特性而构造新类的过程称为继承。2.在已有类的基础上新增自己的特性而产生新类的过程称为派生。3.被继...

  • JDK1.8新特性(五):新的日期时间 API

    JDK1.8系列文章 JDK1.8新特性(一):Lambda表达式 JDK1.8新特性(二):Optional 类...

  • JDK1.8新特性(二):Optional 类

    JDK1.8系列文章 JDK1.8新特性(一):Lambda表达式 JDK1.8新特性(二):Optional 类...

网友评论

    本文标题:新特性3-Optional类

    本文链接:https://www.haomeiwen.com/subject/vrhrhctx.html