java8 Primitive Consumer类接口实例|功能接口教程

157 阅读1分钟

Java8 - java.util.LongSummaryStatistics class example

通过实例了解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功能接口。