如何在Java中使用lambda和方法引用实现IntConsumer?
IntConsumer接口是Java8中java.util.function包的功能接口。该接口接受单个int值的参数作为输入,但不产生任何输出。由于它是一个功能接口,因此可以用作lambda表达式或方法引用的分配目标。它包含一个抽象方法:accept()和一个默认方法:andThen()。
语法
@FunctionalInterface
public interface IntConsumer {
void accept(int value);
}Lambda表达式示例
import java.util.function.IntConsumer;
public class IntConsumerTest1 {
public static void main(String[] args) {
IntConsumer displayNextInt = i -> System.out.println("Next Int Value: " + (i+1)); // lambda
IntConsumer displaySquare = i -> System.out.println("Int Square Value: " + (i*i)); // lambda
IntConsumer displayBoth = displayNextInt.andThen(displaySquare);
displayBoth.accept(25);
}
}输出结果
Next Int Value: 26 Int Square Value: 625
方法引用示例
import java.util.function.IntConsumer;
public class IntConsumerTest2 {
public static void main(String[] args) {
IntConsumer consumer = IntConsumerTest2::print; // 方法引用
consumer.accept(77);
}
static void print(int i) {
System.out.println(i);
}
}输出结果
77