Java 中的双消费者接口,示例
原文:https://www . geesforgeks . org/double consumer-in-Java-interface-with-examples/
双消费者接口是 java.util.function 包的一部分,该包是从 java 8 开始引入的,用于在 Java 中实现函数编程。它表示一个接受一个双值参数但不返回值的函数。
分配给 DoubleConsumer 类型的对象的 lambda 表达式用于定义其 accept() ,该表达式最终将给定的操作应用于其唯一的参数。这类似于使用类型为消费者 <双>的对象
双消费者界面由以下两个功能组成:
接受()
此方法接受一个值,并对其唯一的参数执行操作。
语法:
void accept(double 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);
}
}
Output:
30.0
然后()
它返回一个复合双消费者,其中参数化双消费者将在第一个双消费者之后执行。如果任一操作的计算引发错误,它将被中继到合成操作的调用方。
注意:作为参数传递的操作应为 DoubleConsumer 类型。
语法:
default DoubleConsumer andThen(DoubleConsumer after)
参数:该方法接受之后的参数,该参数是当前参数之后要应用的双消费者。
返回值:这个方法返回一个复合的 DoubleConsumer,首先应用当前操作,然后应用后操作。
异常:如果后操作为空,该方法抛出空指针异常。
下面是说明 andThen()方法的代码:
程序 1:
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);
}
}
Output:
30.0
程序 2: 演示空指针异常何时返回。
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);
}
}
}
Output:
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);
}
}
}
Output:
Exception : java.lang.NumberFormatException: For input string: "3.0"
版权属于:月萌API www.moonapi.com,转载请注明出处