如何在Java中使用lambda和方法引用实现IntConsumer?

IntConsumer接口是Java 8中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