java8 中引入了一个新类: Optional, 用于日常编码中对空指针异常进行限制和处理:
返回值 | 方法 | 说明 |
static <T> Optional<T> | empty() | 返回一个空 Optional 实例 |
static <T> Optional<T> | of(T value) | 将非空值设置到 Optional 实例并返回该实例 |
static <T> Optional<T> | ofNullable(T value) | 将值设置到 Optional 实例中并返回该实例 |
T | get() | 如果一个值是在这 Optional,返回值,否则将 NoSuchElementException |
T | orElse(T other) | 如果当前有值且非空则返回该值,否则返回 other |
测试:
- package test.HimmaQ;
- import java.util.Optional;
- public class OptionalTest {
- public static void main(String[] args) {
- Optional.of(null); //NullPointerException
- Optional.ofNullable(null);// 可放入 null 值 (允许为 null)
- System.out.println(Optional.ofNullable("1111").get());// 输出 1111
- Optional.ofNullable(null).get();//Optional.get() NoSuchElementException, 当 Optional 中放的是 null 时用 get() 取则报该异常
- System.out.println(Optional.ofNullable(null).orElse("2222"));// 输出 2222
- System.out.println(Optional.ofNullable("1111").orElse("2222"));// 输出 1111
- System.out.println(Optional.ofNullable(null).isPresent());// 输出 false
- System.out.println(Optional.ofNullable("1111").isPresent());// 输出 true
- }
- }
更多方法请见 java8 帮助文档.
来源: http://www.bubuko.com/infodetail-2911127.html