Java Optional or()方法及示例

来源:这里教程网 时间:2026-02-17 21:02:09 作者:

Java Optional or()方法及示例

Java中 java.util.Optional类的 or() 方法是用来获取该Optional实例的任何值。 Java中的 Optional类 的or()方法用于获取这个Optional实例,如果有任何值存在。如果这个Optional实例中没有任何值,那么这个方法就会返回一个具有从指定Supplier那里生成的值的Optional实例。

语法

public Optional<T> or(Supplier<T> supplier)

参数: 该方法接受 Supplier 作为T类型的参数,生成一个具有从指定Supplier生成的值的Optional实例。

返回Supplier: 如果有任何值,该方法将返回这个 Optional实例 。如果这个Optional实例中没有任何值,那么这个方法将返回一个具有从指定Supplier生成的值的Optional实例。

异常。如果提供的函数是空的或者产生的结果是空的,这个方法会抛出NullPointerException。

下面的程序说明了or()方法。

注意:由于该方法是在Java 9中添加的,所以这些程序需要JDK 9来执行。

程序1 :

// Java program to demonstrate// Optional.or() method  import java.util.*;import java.util.function.*;  public class GFG {      public static void main(String[] args)    {          // create a Optional        Optional<Integer> op            = Optional.of(9455);          // print supplier        System.out.println("Optional: "                           + op);          // or supplier        System.out.println("Optional by or(() ->"                           + " Optional.of(100)) method: "                           + op.or(() -> Optional.of(100)));    }}

输出。

Optional: Optional[9455]Optional by or(() -> Optional.of(100)) method: Optional[9455]

程序2

// Java program to demonstrate// Optional.or() method  import java.util.*;import java.util.function.*;  public class GFG {      public static void main(String[] args)    {          // create a Optional        Optional<Integer> op            = Optional.empty();          // print supplier        System.out.println("Optional: "                           + op);          try {              // or supplier            System.out.println("Optional by or(() ->"                               + " Optional.of(100)) method: "                               + op.or(() -> Optional.of(100)));        }        catch (Exception e) {            System.out.println(e);        }    }}

输出。

Optional: Optional.emptyOptional by or(() -> Optional.of(100)) method: Optional[100]

参考资料: https://docs.oracle.com/javase/9/docs/api/java/util/Optional.html#or-java.util.function.Supplier-

相关推荐