首页 > 其他 > 详细

lambda

时间:2015-05-19 12:43:36      阅读:122      评论:0      收藏:0      [点我收藏+]

λ表达式本质上是一个匿名方法。让我们来看下面这个例子:

    public int add(int x, int y) {
        return x + y;
    }

转成λ表达式后是这个样子:
    
    (int x, int y) -> x + y;

参数类型也可以省略,Java编译器会根据上下文推断出来:

    (x, y) -> x + y; //返回两数之和
 
或者

    (x, y) -> { return x + y; } //显式指明返回值

可见λ表达式有三部分组成:参数列表,箭头(->),以及一个表达式或语句块

 

看下面的例子:

    Thread oldSchool = new Thread( new Runnable () {
        @Override
        public void run() {
            System.out.println("This is from an anonymous class.");
        }
    } );
    
    Thread gaoDuanDaQiShangDangCi = new Thread( () -> {
        System.out.println("This is from an anonymous method (lambda exp).");
    } );

注意第二个线程里的λ表达式,你并不需要显式地把它转成一个Runnable,因为Java能根据上下文自动推断出来:一个Thread的构造函数接受一个Runnable参数,而传入的λ表达式正好符合其run()函数,所以Java编译器推断它为Runnable。

 

lambda

原文:http://www.cnblogs.com/lnas01/p/4514146.html

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