在需要一个函数式接口的地方,使用lambda表达式
下面实验两个应用函数式接口的地方
其中一个带参数,另外一个不带参数
(另外注意到这时候出现了一种方法引用编译期错误的情况)
import java.util.function.Consumer;
public class LambdaTest {
public static void main(String[] args) {
repeat(10, () -> System.out.println("repeat"));
repeat(10, x -> System.out.println(x));
repeat(10, System.out::println);// ERROR!!但是去掉下面的第一个repeat(int n, Runnable run)方法,又可以执行了。
}
private static void repeat(int n, Runnable run) {
for (int i = 0; i < n; i++) {
run.run();
}
}
private static void repeat(int n, Consumer<Integer> con) {
for (int i = 0; i < n; i++) {
con.accept(i);
}
}
}