若接口中有多个函数,如何使用lambda表达式

2025-03-11 10:17:36
推荐回答(2个)
回答1:

并不是所有接口都可以使用Lambda表达式,只有函数式接口可以。
按照Java8函数式接口的定义,其只能有一个抽象方法,否则就不是函数时接口,就无法用Lambda表达式。
可以使用@FunctionalInterface标注函数式接口,在编译时提前发现错误。

回答2:

一般都是匿名的委托方式,直接传参数进去:
例如:

Func t=(int x, string b) => (x.ToString() + b);就等于private string deletegate TestString(int x, string b );//定义一个委托,返回值为string类型

private string test(int x,string b){
  return x.ToString() + b;


TestString t=new TestString(test);
t(44,"bbb");

Func就是定义一个委托=private string deletegate TestString(int x string b ),前两个参数是相应方法的参数类型,最后一个为方法的返回类型。