Java 中 DoubleConsumer 接口及示例

2025 年 1 月 6 日 | 阅读 4 分钟

java.util.function 包是在 Java 8 中首次发布的,它包含了 DoubleConsumer 接口,该接口用于在 Java 中进行函数式编程。它是一个函数示例,接受一个双精度参数,但不输出任何内容。为了定义其 accept() 函数,该函数最终在其单个参数上应用指定的操作,lambda 表达式的 DoubleConsumer 类型被分配给对象。使用 Consumer<Double> 类型的对象是类似的。

DoubleConsumer 接口由以下两个方法组成:

  1. accept()
  2. andThen()

1. accept()

此方法对它接收的单个参数进行操作,并接受一个值。

语法

参数:此方法只接受 value 作为输入参数,这是唯一的参数。

返回值:此方法不返回任何值。

示例 1

下面的程序展示了如何通过使用定义的 DoubleConsumer 函数式接口操作来处理双精度值。在这里,一个名为 display 的 DoubleConsumer 实例通过 lambda 表达式定义。它接收一个双精度输入,将其乘以 100,然后打印结果以及解释。

实施

文件名:Doubleconsumer.java

输出

The value is given by 400.0

示例 2

提供的 Java 程序展示了如何使用 DoubleConsumer 函数式接口将双精度值添加到列表中。为了存储 Double 数据,必须首先创建一个名为 List 的列表。

实施

文件名:AddingvaluestoList.java

输出

The elements present in the given list is: [1.0, 2.0, 3.0, 4.0, 5.0]

2. andThen()

参数化的 DoubleConsumer 在第一个执行后继续执行,并返回一个组合的 DoubleConsumer。如果任何操作的评估返回错误,则错误会报告给组合操作的调用者。

注意:应注意,作为参数提供的操作是 DoubleConsumer 类型。

语法

参数:此函数接受的参数是要在当前 DoubleConsumer 之后执行的 DoubleConsumer。

返回值:此函数的结果是创建的一个 DoubleConsumer,它在应用当前操作后执行后续操作。

异常:如果后续操作为 null,则此方法会引发 NullPointerException。

示例 1

Java 程序使用 DoubleConsumer 接口及其 andThen 方法作为示例来演示链式操作。

实施

文件名:DoubleconsumerthenMethod.java

输出

The value is given by : 40.0

示例 2

Java 程序使用 DoubleConsumer 接口及其 andThen 方法来演示一个独特的情况。

实施

文件名:ExceptionalCaseDoubleConsumer.java

输出

The Exception thrown is : java.lang.NullPointerException

示例 3

Java 程序展示了如何使用 DoubleConsumer 接口和函数来管理异常。

实施

文件名:HandlingExceptionDoubleConsumer.java

输出

The Exception thrown is : java.lang.NumberFormatException: For input string: "4.0"