– Start
点击此处观看本系列配套视频。
在 Java 中,一切都是对象,函数不能独立于对象存在,如何把一个函数作为参数传递给另一个函数呢?一个简单的想法是,如果一个对象只包含一个函数,我们不就可以认为该对象是一个函数吗?这就是所谓的函数接口(Functional Interface)的概念。值得注意点是函数接口只能包含一个为实现的函数,但是它可以有默认和静态函数,下面是一个简单的例子。
package shangbo.functional.demo3;
public interface MyFunctionalInterface {
public void run();
public default void defaultMethod() {
System.out.println("defaultMethod");
}
public static void staticMethod() {
System.out.print("staticMethod");
}
}
事实上,通常我们不需要自己定义函数接口,Java 已经提供了一些函数接口共我们使用,它们都在 java.util.function 包中。
Function 接收一个参数,返回一个值
Predicate 接收一个参数,返回一个布尔值
Supplier 返回一个值
Consumer 接收一个参数
UnaryOperator 接收一个参数,返回一个同类型的值
BinaryOperator 接收两个参数,返回一个同类型的值
这些接口还有一些子接口,具体参见 API 文档。
– 更多参见:Java 函数式编程精萃
– 声 明:转载请注明出处
– Last Updated on 2019-05-29
– Written by ShangBo on 2019-05-29
– End