Java8消费者接口
消费者接口是java.util.function页面中的功能接口,在Java 8中引入。它只接受一个参数并输出任何结果。
这个抽象方法是accept(),默认方法是andThen()。
这个方法从java.util.function包中被定义为java 8版本。
它可以被分配给lambda表达式和方法引用的目标。
消费者接口用于消费流提供的数据,处理它并打印结果,或在编程流程中链到另一个接口。
@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");
}
}
消费者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