首页 > 编程语言 > 详细

学习java核心技术卷之lambda随笔

时间:2018-04-27 18:38:03      阅读:129      评论:0      收藏:0      [点我收藏+]

Lambda表达式

  形式:参数,箭头(->),表达式

    参数类型要写,如果可以推导出来则可以不写

    只有一个参数可以省略小括号

    无参数要写空括号()

    *如果分支返回值,那么所有分支都要返回值,否则不合法

   函数式接口:只有一个抽象方法的接口(可以用@FunctionalInterface注解标记)

    比如,javax.swing.Timer中可以这样

      Timer t = new Timer(1000, event ->

      {

        …

      });

    这个构造器的第二个参数需要一个ActionListener实例,ActionListener

    就是只有一个方法的接口,所以可以使用 lambda表达式。

  方法引用

    Object::instanceMethod

    Class::staticMethod

    Class::instanceMethod

    如:event -> System.out.println(event)  等价于 System.out :: println

      Math::pow  等价于 (x, y) -> Math.pow(x, y)

    而第三种情况,第一个参数会成为方法的目标如 :String::compareToIgnoreCase 等价于(x,y) -> x.compareToIgnoreCase(y)

    还有可以使用this和super参数;

    Super :: instanceMethod

  构造器引用:

    X -> new int[x] 等价于 int[]::new

    Person x = New Person(…) 等价于 Person::new

    当有多个构造器时,编译器会从上下文推导

学习java核心技术卷之lambda随笔

原文:https://www.cnblogs.com/tinfinite/p/8963660.html

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