Appearance
深入学习 Lambda 表达式
Lambda 中的参数
自由变量:非参数且不在代码中定义的变量。
类似这样
java
public static void repeatMessage(String text,int delay){
ActionListener listener=event->{
System.out.println(text);
Toolkit.getDefaultToolkit().beep();
};
new Timer(delay,listener).start();
}这里的代码表明,lambda表达式可以捕获外层作用域中的变量的值。而我们要确保所捕获的值是明确定义的,并且只能引用之不会改变的变量。
示例代码
java
import java.util.function.IntConsumer;
public class C627 {
public static void main(String[] args) {
repeat_Runnable(10, () -> {
System.out.println("jyp不学习");
});
repeat_IntConsumer(10, i -> System.out.println("lyl不起床" + i));
}
public static void repeat_Runnable(int n, Runnable action) {
for (int i = 0; i < n; i++) {
action.run();
}
}
public static void repeat_IntConsumer(int n, IntConsumer action) {
for (int i = 0; i < n; i++) {
action.accept(i);
}
}
}