lambda表达式作为方法参数

一、作为方法参数传递lambda表达式或lambda块
1、是一种常见用途,将lambda表达式或者lambda块作为参数传递给方法。
2、前提:方法的参数是一个函数式接口引用。
3、将lambda表达式作为参数传递给方法,是很方便的技巧,尤其是该lambda表达式只用一次。
4、将lambda块作为参数传递给方法,程序会比较笨拙,所以先实现lambda块,再传递函数式接口引用给方法。

示例一:
1、函数式接口
interface StringFunc{
String func(String str);
}
2、以函数式接口为参数的方法
class StringReverse{
public String reverse( StringFunc sf, String str){
return sf.func(str); //调用了函数式接口的方法
}
}
3、传递lambda表达式
String begin = "this is a process";
String after;
StringReverse sr = new StringReverse();
after = sr.reverse( str -> str.toUpperCase(), begin);
System.out.println(after);
其中:str -> str.toUpperCase()创建了函数式接口的具体实现,并将其引用传递给了方法。
4、传递lambda块
after = sr.reverse( str -> {
String s = "";
for(int i = str.length()-1; i >=0; i--){
s += str.charAt(i);
}
return s;
}, begin);
System.out.println(after);
将lambda代码块作为方法的参数,传递给方法。与3同效。但这样编写程序太笨拙,易读性差。所以 一般常用 :先将lambda块赋值给一个函数式接口变量,载再传递该变量给方法。
StringFunc sf = str -> {
String s = "";
for(int i = str.length()-1; i >=0; i--){
s += str.charAt(i);
}
return s;
};
after = sr.reverse( sf, begin);
System.out.println(after);


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值