将 lambda 表达式与你自己的功能接口一起使用
Lambdas 旨在为单个方法接口提供内联实现代码,并且能够像我们使用常规变量一样传递它们。我们称之为功能界面。
例如,在匿名类中编写 Runnable 并启动 Thread 看起来像:
//Old way
new Thread(
new Runnable(){
public void run(){
System.out.println("run logic...");
}
}
).start();
//lambdas, from Java 8
new Thread(
()-> System.out.println("run logic...")
).start();
现在,按照上面的说法,假设你有一些自定义界面:
interface TwoArgInterface {
int operate(int a, int b);
}
你如何使用 lambda 在你的代码中实现这个接口?与上面显示的 Runnable 示例相同。请参阅下面的驱动程序:
public class CustomLambda {
public static void main(String[] args) {
TwoArgInterface plusOperation = (a, b) -> a + b;
TwoArgInterface divideOperation = (a,b)->{
if (b==0) throw new IllegalArgumentException("Divisor can not be 0");
return a/b;
};
System.out.println("Plus operation of 3 and 5 is: " + plusOperation.operate(3, 5));
System.out.println("Divide operation 50 by 25 is: " + divideOperation.operate(50, 25));
}
}