通过实例学习java8中的Numeric BinaryOperators 类。
java.util.function 包中定义了原始的消费者功能接口。
它只有一个抽象方法,接受对象值和其他数字值,结果是什么都没有。
它像BiConsumer 接口一样接受两个值作为输入。
所有的函数式接口都是用lambda表达式或方法引用来作为变量分配的。
你可以查看我的相关帖子。
java8中的ObjIntConsumer类
java.util.function.ObjIntConsumer 是一个函数式接口。
它有一个抽象的方法。 accept(T t, integer value)需要两个参数
t是一个对象,value是一个整数。
ObjIntConsumer方法引用示例
方法引用是用double colon 操作符声明和调用的。
它被分配了Consumer ,用两个参数调用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);
}
}
上述生成的代码的输出是
Hello4
ObjIntConsumer Lambda表达式示例
这里通过传递两个参数声明了lambda表达式,并通过ObjIntConsumer 接口分配。
调用时接受Object和int值,不返回任何东西。
下面是一个ObjIntConsumer Lambda表达式的例子
import java.util.function.ObjDoubleConsumer;
public class Test {
public static void main(String[] args) throws Exception{
ObjDoubleConsumer objDoubleConsumer = ( v1 , v2 ) -> { System.out.println(v1 + " " +v2);};
objDoubleConsumer.accept("object",1d);
}
}
输出
test 1
java中的ObjLongConsumer接口
java.util.function.ObjLongConsumer 是一个功能接口。
它有一个抽象的方法 -accept(Object, primitive value) ,接受对象和整数值作为输入,并且不返回任何结果。
import java.util.function.ObjLongConsumer;
public class Test {
public static void main(String[] args) throws Exception{
ObjLongConsumer objLongConsumer = ( v1 , v2 ) -> { System.out.println(v1 + " " +v2);};
objLongConsumer.accept("object",4l);
}
}
上述代码执行的输出是
object 4
结论
通过实例学习对象原始消费者,使用lambda表达式和方法引用语法。