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表达式,会使得代码更加紧凑

 

可读性差+不便调试+版本支持 -> 适用于简短的业务代码中

 

posted @ 2019-02-23 23:03  sys_user_findnull  阅读(101)  评论(0)    收藏  举报