抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Optional类

Java 8在java.util包中新增了Optional类,Optional类是一个可以包含或不可以包含非空值的容器对象。每一个Java项目,最主要的重复语句就是检查空指针异常NullPointerException。我们使用任何对象,都需要检查此对象是否为空,如果对象不为空我们才执行处理语句。在Java 8之前,Google Guava引入了Optionals类来解决NullPointerException,从而避免源码被各种null检查污染,以便开发者写出更加整洁的代码。Java 8也将Optional加入了官方库。 Optional类像是一个容器,它保存一个T类型的值或是null值。通过使用Optional类的isPresent()方法,我们可以检查指定的对象是否为空。 接下来看一点使用Optional的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

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


import java.util.Optional;


/**
* <p>
* java8 optional测试
*/

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!"));

System.out.println();



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!"));

}

}