首页 > 其他 > 详细

jdk1.8新特性(Lambda表达式)

时间:2019-06-22 18:24:44      阅读:245      评论:0      收藏:0      [点我收藏+]

只具有一个方法的普通接口可以被转换为Lambda表达式。

 

语法:{参数1,参数2...}->{...}

(1)没有参数时使用Lambda表达式    ()->{...}

(2)带参数时使用Lambda表达式       (int a)->{...}

(3)代码中只一句代码使用Lambda表达式   ()->System.out.println(a);

(4)代码中有多句代码时使用Lambda表达式  (int a,int b)->{System.out.println(a);System.out.println(a*b);}

(5)有返回值的代码块      (int a,int b)->{System.out.println(a);System.out.println(a*b); return a;}

(6)参数中使用final关键字    (final String a)->System.out.println(a);

 

demo如下:

 

public class tet {
    public static void main(String[] args){
        //System.out.println(4&10);//相当于10%(4+1)

        //代码中只一句代码使用Lambda表达式
  /*    IEat iEat3 = ()-> System.out.println("代码中只一句代码使用Lambda表达式");
        iEat3.eat();*/

        //没有参数时使用Lambda表达式
/*        IEat iEat3 = ()-> {System.out.println("没有参数时使用Lambda表达式 ");};
        iEat3.eat();*/

        //带参数时使用Lambda表达式
/*        IEat iEat3 = (int a)-> {System.out.println("带参数时使用Lambda表达式  "+a);};
        iEat3.eat(5);*/

        //代码中有多句代码时使用Lambda表达式
        /*IEat iEat3 = (int a)-> {System.out.println("代码中有多句代码时使用Lambda表达式"+a);System.out.println("代码中有多句代码时使用Lambda表达式"+a);};
        iEat3.eat(5);*/

        //有返回值的代码块
       /* IEat iEat3 = (int a)-> {System.out.println("有返回值的代码块"+a); return a;};
        iEat3.eat(5);*/

       //参数中使用final关键字
        IEat iEat3 = (final int a)-> {System.out.println("参数中使用final关键字"+a); return a;};
        iEat3.eat(5);
    }

    interface  IEat{
        public int eat(final int a);
    }

    class IEatImpl implements IEat{
        public int eat(final int a){
            System.out.println("eat bnana");
            //System.out.println("eat apple");
            return a;
        }
    }
}

 

jdk1.8新特性(Lambda表达式)

原文:https://www.cnblogs.com/wenbiquan/p/11069669.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!