Lambda函数表达式引用方法
1、前提条件:实现接口的入参、返回值类型与接口的抽象方法一致
创建内部接口
LambdaInterface51 添加加法interfaceSum抽象方法
LambdaInterface52 添加减法interfaceSub抽象方法、
可以添加@FunctionalInterface 注释
2、Lambda引用静态方法
创建静态方法
public static int sum (int a,int b){
return a+b;
}
调用静态方法
Lambda05::sum; 函数Lambda05的静态方法sum;
/**
* 静态方法Lambda表达式 1
*/
LambdaInterface51 lambdaInterface510 = (int a,int b)->sum(a,b);
int sum = lambdaInterface510.interfaceSum(2, 3);
System.out.println(sum);
/**
* 静态方法Lambda表达式 2
*/
LambdaInterface51 lambdaInterface511 = Lambda05::sum;
int sum511 = lambdaInterface511.interfaceSum(7, 8);
System.out.println(sum511);
3、Lambda引用非静态(对象)
创建非静态方法
public int sub(int a,int b){
return a - b;
}
方法调用
/**
* 对象方法 Lambda表达式1
* LambdaInterface52 lambdaInterface52 = refM::sub;
* 含义:定义接口 LambdaInterface52的实现为 对象refM的sub方法
*/
Lambda05 refM = new Lambda05();
LambdaInterface52 lambdaInterface52 = refM::sub;
int sub = lambdaInterface52.interfaceSub(5,2);
System.out.println(sub);
代码示例:
/**
* @author lingyiwin
* @version 1.0
* @date 2020/10/25 22:32
* Lambda函数表达式引用方法
* 前提条件:实现接口的入参、返回值类型与接口的抽象方法一致
* Lambda引用静态方法
* Lambda引用非静态(对象)
*/
public class Lambda05 {
public static void main(String[] args) {
/**
* 静态方法Lambda表达式 1
*/
LambdaInterface51 lambdaInterface510 = (int a,int b)->sum(a,b);
int sum = lambdaInterface510.interfaceSum(2, 3);
System.out.println(sum);
/**
* 静态方法Lambda表达式 2
*/
LambdaInterface51 lambdaInterface511 = Lambda05::sum;
int sum511 = lambdaInterface511.interfaceSum(7, 8);
System.out.println(sum511);
/**
* 对象方法 Lambda表达式1
* LambdaInterface52 lambdaInterface52 = refM::sub;
* 含义:定义接口 LambdaInterface52的实现为 对象refM的sub方法
*/
Lambda05 refM = new Lambda05();
LambdaInterface52 lambdaInterface52 = refM::sub;
int sub = lambdaInterface52.interfaceSub(5,2);
System.out.println(sub);
}
public static int sum (int a,int b){
return a+b;
}
public int sub(int a,int b){
return a - b;
}
}
interface LambdaInterface51{
public int interfaceSum(int a,int b);
}
interface LambdaInterface52{
public int interfaceSub(int a,int b);
}