Java 8定义一个接收lambda表达式作为参数的方法

时间:2021-10-03 17:21:22

在Java 8,如果一个接口只声明了一个抽象方法,那么这个接口称为函数接口。

public interface Runnable { void run(); } 
public interface Callable<V> { V call() throws Exception; } 

对于接收函数接口为参数的方法,可以使用lambda表达式表示接口。其中lambda表达式需要和接口唯一函数的签名一致,即参数列表,返回值要一直。

@FunctionalInterface
interface Print<T> {
    public void print(T x);
}
public class Lambda {   
    public static void PrintString(String s, Print<String> print) {
        print.print(s);
    }
    public static void main(String[] args) {
        PrintString("test", (x) -> System.out.println(x));
    }
}

此例中,(x) -> System.out.prinln(x)表示接口Print<String>。