
通过实例了解java8中的原始消费者。
java.util.function.consumer接口
Java 8在java.util.function 包中引入了不同的consumer 接口。
- IntConsumer
- LongConsumer
- DoubleConsumer
Consumer 是一个接受数值的操作,不输出结果。
java8 IntConsumer类
IntConsumer是一个定义在java.util.function 包中的接口。它只有一个抽象的方法--accept() ,它接受一个输入值,不返回任何东西。
还有默认方法 -andThen(IntConsumer after) - 返回被调用的消费者的聚合消费者和消费后的结果。
import java.util.Arrays;
import java.util.function.IntConsumer;
public class Test {
public static void main(String[] args) throws Exception{
IntConsumer consumer = value -> System.out.println(value);
consumer.accept(51);
consumer.accept(110);
int[] numbers = {8,7,3,1};
IntConsumer intConsumerFunction = value -> System.out.print(value+" ");
Arrays.stream(numbers).forEach(intConsumerFunction);
}
}
输出
51
110
8 7 3 1
java8 LongConsumer类
LongConsumer 接口被定义在java8的 包中。java.util.function
它接受一个长的输入值,但没有输出结果。
它只有一个抽象的方法accept()
默认方法 -andThen(LongConsumer after) - 返回被调用的消费者与结果消费者的操作的总和。
以下是accept and andthen方法的代码示例
import java.util.function.LongConsumer;
public class Test {
public static void main(String[] args) throws Exception{
LongConsumer longConsumer1 = (value ) -> { System.out.println(value); };
longConsumer1.accept(5);
LongConsumer longConsumer2 = ( value) -> { System.out.println(value); };
longConsumer1.andThen(longConsumer2).accept(4);
}
}
输出
5
4
4
Java8 DoubleConsumer类
DoubleConsumer 是一个定义在java8的 包中的内置接口。它只有 抽象方法,接受一个双倍值,并且不产生输出 ,同时,它有 默认方法。java.util.function accept
andThen
import java.util.function.DoubleConsumer;
public class Test {
public static void main(String[] args) throws Exception{
DoubleConsumer multiplyDoubleConsumer= (value) -> System.out.println(value*value);
multiplyDoubleConsumer.accept(.5);
}
}
输出
0.25
结论
在本教程中,我们将通过实例来了解原始的消费者接口类型--IntConsumer、DoubleConsumer、LongConsumer功能接口。