当前位置: 移动技术网 > IT编程>开发语言>Java > 学习java核心技术卷之lambda随笔

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

2018年04月28日  | 移动技术网IT编程  | 我要评论

龙神传说官网,彭丹喂男人吃奶图片,俊爸俏妈

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

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网