Java8 - `java.util.function`接口教程 - Java中的功能接口示例

142 阅读1分钟

Java8 Consumer interface tutorials example

什么是Java8中的消费者接口?

Consumer 接口是Java 8中java.util.function 包中的功能接口。 它只接受一个参数,并输出任何结果。

功能性接口包含一个抽象方法accept() ,默认方法是andThen()

从java 8版本开始,这个方法被定义在java.util.function 包中。

它可以被指定为lambda expressionsmethod references 的目标。

消费者接口被用来消费由流提供的数据,对其进行处理,并将结果打印出来,或者在流编程流程中链给另一个接口。

@FunctionalInterface  
  public interface Consumer { void accept(T t);  
}  

简单的消费者接受抽象方法的例子

accept 方法接受输入,没有输出,但它将结果打印到控制台

import java.util.function.Consumer;
public class MyConsumerExample {
    static void displayName(String name) {
        System.out.println("Hi " + name);
    }

    public static void main(String[] args) {
        Consumer consumerString = MyConsumerExample::displayName;
        consumerString.accept("Frank");
    }
}  

输出:

Hi Frank

java8消费者addThen默认方法示例

addThen() 是消费者接口的一个默认方法。它通过应用于另一个消费者实例的消费者的聚合结果输出新的消费者。

这是一个消费者lambda参数的例子addThen()的语法如下

default Consumer andThen(Consumer after)  

例子

import java.util.function.Consumer;
public class MyConsumerExample {
    static void displayName(String name) {
        System.out.println("Hi " + name);
    }
    public static void main(String[] args) {
        Consumer c = (value) -> System.out.println(value.toUpperCase());
        c.andThen(c).accept("sampledata");
        c.accept("others");
    }
}  

输出:

SAMPLEDATA  
SAMPLEDATA  
OTHERS

总结

在本教程中,我们学习了消费者接口和它的用法,包括抽象方法和默认方法的例子,以及使用lambda表达式和方法引用的例子。