📜  Java中的DoubleConsumer接口与示例

📅  最后修改于: 2022-05-13 01:55:31.800000             🧑  作者: Mango

Java中的DoubleConsumer接口与示例

DoubleConsumer 接口Java .util 的一部分。从Java 8 开始引入的函数包,用于在Java中实现函数式编程。它表示一个接受一个双值参数但不返回任何值的函数。

分配给 DoubleConsumer 类型对象的 lambda 表达式用于定义其accept()最终将给定操作应用于其唯一参数。它类似于使用 Consumer 类型的对象

DoubleConsumer 接口由以下两个函数组成:

接受()

此方法接受一个值并对其唯一的参数执行操作。

句法:

void accept(double value)

参数:该方法只接受一个参数:

  • value – 输入参数

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

下面是说明 accept() 方法的代码:

import java.util.function.DoubleConsumer;
  
public class GFG {
    public static void main(String args[])
    {
  
        // Create a DoubleConsimer Instance
        DoubleConsumer
            display
            = a -> System.out.println(a * 10);
  
        // using accept() method
        display.accept(3);
    }
}
输出:
30.0

进而()

它返回一个组合的 DoubleConsumer,其中参数化的 DoubleConsumer 将在第一个之后执行。如果任一操作的评估引发错误,则会将其转发给组合操作的调用者。

注意:作为参数传递的操作应该是 DoubleConsumer 类型。

句法:

default DoubleConsumer andThen(DoubleConsumer after)

参数:此方法接受一个参数,在该参数之后是要在当前参数之后应用的 DoubleConsumer。

返回值:此方法返回一个组合的 DoubleConsumer,它首先应用当前操作,然后是 after 操作。

异常:如果 after 操作为 null,则此方法抛出NullPointerException

下面是说明 andThen() 方法的代码:

方案一:

import java.util.function.DoubleConsumer;
  
public class GFG {
    public static void main(String args[])
    {
  
        // Create a DoubleConsimer Instance
        DoubleConsumer display = a -> System.out.println(a * 10);
        DoubleConsumer mul = a -> a /= 2;
  
        // using addThen() method
        DoubleConsumer composite = mul.andThen(display);
        composite.accept(3);
    }
}
输出:
30.0

程序2:演示何时返回NullPointerException

import java.util.function.DoubleConsumer;
  
public class GFG {
    public static void main(String args[])
    {
  
        // Create a DoubleConsimer Instance
        DoubleConsumer mul = a -> a /= 10;
  
        try {
  
            // using addThen() method
            DoubleConsumer composite = mul.andThen(null);
  
            composite.accept(3);
        }
        catch (Exception e) {
            System.out.println("Exception : " + e);
        }
    }
}
输出:
Exception : java.lang.NullPointerException

程序3:演示after函数中的异常是如何返回和处理的。

import java.util.function.DoubleConsumer;
  
public class GFG {
    public static void main(String args[])
    {
  
        try {
  
            DoubleConsumer
                conv
                = a
                -> System.out.println(
                    Integer
                        .parseInt(
                            Double
                                .toString(a)));
            DoubleConsumer mul = a -> a /= 10;
  
            // using addThen() method
            DoubleConsumer composite = mul.andThen(conv);
  
            composite.accept(3);
        }
        catch (Exception e) {
            System.out.println("Exception : " + e);
        }
    }
}
输出:
Exception : java.lang.NumberFormatException: For input string: "3.0"