原始消费者功能接口被定义在java.util.function包中。
它有一个唯一的抽象方法,接受对象值和其他数值,结果是什么都没有。
它像BiConsumer接口一样接受两个值作为输入。所有的函数接口都可以作为一个变量被分配给lambda表达式或方法引用。
ObjIntConsumer
java.util.function.ObjIntConsumer是一个功能接口。它有一个抽象的方法
accept(T t, integer value)需要两个参数
t是一个对象,value是一个整数。
方法引用示例
方法引用是用双冒号操作符声明和调用的,这个分配给消费者,调用accept()方法,有两个参数,没有返回。
import java.util.function.ObjIntConsumer;
public class MethodReferenceExample {
static void append(String str, int value) {
System.out.println(str+value);
}
public static void main(String[] args) {
ObjIntConsumer IntToDoubleFunction = MethodReferenceExample::append;
IntToDoubleFunction.accept("Hello",4);
}
}
兰姆达表达式示例
这里的Lambda表达式通过传递两个参数声明,并分配给ObjIntConsumer接口。用Object和int值调用accept,并且不返回任何东西。
ObjDoubleConsumer objDoubleConsumer = ( v1 , v2 ) -> { System.out.println(v1 + " " +v2);};
objDoubleConsumer.accept("object",1d);
ObjLongConsumer
java.util.function.ObjLongConsumer是一个功能接口。它有一个抽象的方法--accept(Object,primitive value),将对象和整数值作为输入,不返回任何结果。
ObjLongConsumer objLongConsumer = ( v1 , v2 ) -> { System.out.println(v1 + " " +v2);};
objLongConsumer.accept("object",4l);