Lambda
此处先做简要描述,应该是在how2j浏览了个大概,立个flag,日后回来再看。。。。
匿名内部类
HeroChecker c1 = new HeroChecker(){
public boolean test(Hero h){
return (h.hp > 100 && h.damage < 50);
}
}
去壳,保留方法参数和方法体,参数方法体间加 ->
HeroChecker c2 = (Hero h) ->{
return h.hp >100 && h.damage <50;
}
去掉return和{}
HeroChecker c3 = (Hero h) -> h.hp > 100 && h.damage < 50;
把参数类型和圆括号去掉(只有一个参数的时候,才可以去掉圆括号)
HeroChecker c4 = h -> h.hp > 100 && h.damage < 50;
把c4作为参数传递进去
filter(heros,c4);
直接把表达式传递进去
filter(heros,h -> h.hp > 100 && h.damage < 50);
Lambda实际是匿名方法,将方法作为参数进行传递,引入Lambda表达式,会使得代码更加紧凑
可读性差+不便调试+版本支持 -> 适用于简短的业务代码中

浙公网安备 33010602011771号