Java Optional用法

简介: Java学习笔记

Optional是一个容器对象,可以包含也可以不包含非null值。Optional在Java 8中引入,目的是解决NullPointerExceptions的问题。它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。

常用的类方法

  • static  Optional empty()
  • 返回空的Optional实例
  • static  Optional of(T value)
  • 返回一个指定非null值的Optional
  • static  Optional ofNullable(T value)
  • 如果为非空,返回 Optional 描述的指定值,否则返回空的 Optional
  • T orElse(T other)
  • 如果存在该值,返回值, 否则返回 other
  • T orElseGet(Supplier other)
  • 如果存在该值,返回值, 否则触发 other,并返回 other 调用的结果
  •  T orElseThrow(Supplier exceptionSupplier)
  • 如果存在该值,返回包含的值,否则抛出由 Supplier 继承的异常
  • boolean equals(Object obj)
  • 判断其他对象是否等于 Optional。
  • Optional filter(Predicate predicate)
  • 如果值存在,并且这个值匹配给定的 predicate,返回一个Optional用以描述这个值,否则返回一个空的Optional
  • T get()
  • 如果在这个Optional中包含这个值,返回值,否则抛出异常:NoSuchElementException
  • void ifPresent(Consumer consumer)
  • 如果值存在则使用该值调用 consumer , 否则不做任何事情
  • boolean isPresent()
  • 如果值存在则方法会返回true,否则返回 false


使用例子:

publicclassOptionalDemo {
publicstaticvoidmain(String[] args) {
Integera=null;
Optional<Integer>opt=Optional.ofNullable(a);
if (!opt.isPresent()) {
System.out.println("a is a null value");
        }
Integerb=1;
Optional<Integer>opt2=Optional.of(b);
System.out.println(opt2.get());
    }
}

输出:

image.png


相关文章
|
15天前
|
Java
Java中的抽象类:深入了解抽象类的概念和用法
Java中的抽象类是一种不能实例化的特殊类,常作为其他类的父类模板,定义子类行为和属性。抽象类包含抽象方法(无实现)和非抽象方法。定义抽象类用`abstract`关键字,子类继承并实现抽象方法。抽象类适用于定义通用模板、复用代码和强制子类实现特定方法。优点是提供抽象模板和代码复用,缺点是限制继承灵活性和增加类复杂性。与接口相比,抽象类可包含成员变量和单继承。使用时注意设计合理的抽象类结构,谨慎使用抽象方法,并遵循命名规范。抽象类是提高代码质量的重要工具。
26 1
|
1月前
|
前端开发 Java
java中的Queue队列的用法
java中的Queue队列的用法
19 1
|
1月前
|
XML Java 编译器
java aspectjrt AOP 用法
java aspectjrt AOP 用法
21 0
|
4天前
|
JSON Java 数据格式
Java QueryWrapper基本用法
Java QueryWrapper基本用法
12 2
|
15天前
|
存储 Java API
java8新特性 lambda表达式、Stream、Optional
java8新特性 lambda表达式、Stream、Optional
|
26天前
|
Java
Java8 Optional
Java8 Optional
11 0
|
1月前
|
安全 Java 开发者
Java 8 `Optional` 类的用法和优势
【2月更文挑战第15天】
13 0
|
1月前
|
存储 Java
java8新特性-Optional
java8新特性-Optional
18 0
|
2月前
|
Java