📌  相关文章
📜  Java中的 OptionalDouble orElseThrow() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:01:56.235000             🧑  作者: Mango

Java中的 OptionalDouble orElseThrow() 方法及示例

在Java 8中,OptionalDouble类是一个容器,它可以保存基本类型double的值,该值可以是null或非null。OptionalDouble类提供了许多有用的方法来处理double值,其中包括orElseThrow()方法。

orElseThrow()方法的作用

orElseThrow()方法允许我们在OptionalDouble对象的值为空时抛出一个异常。该方法接受一个Supplier接口的实现,如果OptionalDouble的值为空,则使用Supplier接口的实现来抛出异常。

示例:使用orElseThrow()方法

下面是一个简单的示例,演示如何使用OptionalDouble的orElseThrow()方法。

import java.util.OptionalDouble;

public class OrElseThrowExample {

    public static void main(String[] args) {
        OptionalDouble emptyOptional = OptionalDouble.empty();
        OptionalDouble populatedOptional = OptionalDouble.of(42.2);

        // 为emptyOptional调用orElseThrow
        try {
            emptyOptional.orElseThrow(() -> new Exception("No value present"));
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }

        // 为populatedOptional调用orElseThrow
        try {
            double result = populatedOptional.orElseThrow(() -> new Exception("No value present"));
            System.out.println("Result: " + result);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}

在上面的示例中,我们创建了两个OptionalDouble对象,一个是空的,另一个包含一个双精度浮点数值。然后,我们使用orElseThrow()方法为两个OptionalDouble对象调用相同的Supplier接口实现来抛出异常。

当我们为emptyOptional对象调用orElseThrow()方法时,由于OptionalDouble的值为空,Supplier接口会抛出“ No value present”异常。此时我们捕获该异常并打印出来。

当我们为populatedOptional对象调用orElseThrow()方法时,由于OptionalDouble包含一个双精度浮点数值,Supplier接口不会被调用,orElseThrow()方法返回包含的值。此时我们将该值打印出来。

返回markdown格式的代码片段
# Java中的 OptionalDouble orElseThrow() 方法及示例

在Java 8中,OptionalDouble类是一个容器,它可以保存基本类型double的值,该值可以是null或非null。OptionalDouble类提供了许多有用的方法来处理double值,其中包括orElseThrow()方法。

## orElseThrow()方法的作用

orElseThrow()方法允许我们在OptionalDouble对象的值为空时抛出一个异常。该方法接受一个Supplier接口的实现,如果OptionalDouble的值为空,则使用Supplier接口的实现来抛出异常。

## 示例:使用orElseThrow()方法

下面是一个简单的示例,演示如何使用OptionalDouble的orElseThrow()方法。

```java
import java.util.OptionalDouble;

public class OrElseThrowExample {

    public static void main(String[] args) {
        OptionalDouble emptyOptional = OptionalDouble.empty();
        OptionalDouble populatedOptional = OptionalDouble.of(42.2);

        // 为emptyOptional调用orElseThrow
        try {
            emptyOptional.orElseThrow(() -> new Exception("No value present"));
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }

        // 为populatedOptional调用orElseThrow
        try {
            double result = populatedOptional.orElseThrow(() -> new Exception("No value present"));
            System.out.println("Result: " + result);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}

在上面的示例中,我们创建了两个OptionalDouble对象,一个是空的,另一个包含一个双精度浮点数值。然后,我们使用orElseThrow()方法为两个OptionalDouble对象调用相同的Supplier接口实现来抛出异常。

当我们为emptyOptional对象调用orElseThrow()方法时,由于OptionalDouble的值为空,Supplier接口会抛出“ No value present”异常。此时我们捕获该异常并打印出来。

当我们为populatedOptional对象调用orElseThrow()方法时,由于OptionalDouble包含一个双精度浮点数值,Supplier接口不会被调用,orElseThrow()方法返回包含的值。此时我们将该值打印出来。