java和kt中lambda实现及原始实现
Kotlin
// 使用lambda表达式
fun mutilyFun(){
val mutily = {x:Int,y:Int ->
x*y
}
print(mutily(1,2)) // 2
}
// 不使用lambda表达式,使用函数式接口和匿名内部类
fun interface mutilyInteface{
fun mutily(x:Int,y:Int):Int
}
fun mutilyFun(){
val mutily = object: mutilyInteface{
override fun mutily(x:Int,y:Int):Int{
return x*y
}
}
print(mutily(1,2)) // 2
}
Java
// 使用匿名内部类
@Test
public void mutilyFun() {
IntBinaryOperator intUnaryOperator = (x, y) -> {
return x * y;
};
System.out.println(intUnaryOperator.applyAsInt(10, 20));
}
// 使用匿名内部类
interface MutilyInterface{
int mutily(int x, int y);
}
@Test
public void mutilyFun(){
MutilyInterface mutilyInterface = new MutilyInterface() {
@Override
public int mutily(int x, int y) {
return x * y;
}
};
System.out.println(mutilyInterface.mutily(10, 20));
}