美文网首页
JAVA笔记#01 Lambda表达式

JAVA笔记#01 Lambda表达式

作者: areece | 来源:发表于2020-03-17 08:35 被阅读0次

lambda表达式是什么

Lamba是一种实现@FunctionInterface的机制,@FunctionInterface是只带有一个虚方法的接口。可以把lambda表达式看成一个函数,这个函数就是对@FunctionInterface中虚方法的实现。

lambda表达式可以是() -> {} 这样的,也可以是x->{}这样的,甚至可以直接是引用的一个函数,比如system.out::println这样的。

直接使用函数

直接使用函数有各种各样的变种,包括

  • 类::静态方法
  • 类::实例方法
  • 对象::实例方法
  • 构造函数,这个比较特殊,实际上是类型::New(),而类型可能是某个类,也可以是类的数组。

总之,不管什么样的函数,只要是能够转换成对@FunctionInterface中虚方法的实现就行。

变量引用域

Lambda表达式变量有两个特点:

  1. 词法范围是外层函数,与嵌套代码有相同的作用域,拟不能与外面的嵌套代码中的变量重名;并且,如果在lambda表达式中使用this事实上是嵌套代码中的this对象。
  2. 由于匿名类对于自由变量的捕获,所以对于外部局部变量(包括函数的参数),要做到事实上的final。不能直接改变变量(给变量赋值),而只是能够调用它的方法。

默认方法

默认方法与lambda表达式并不是一个东西,这是java为了能够向前兼容,给接口添加新方法与默认实现的做法。

默认方法会导致出现冲突,解决冲突的原则非常简单:

  1. 父类优先
  2. 如果是父接口出现冲突,需要手动解决冲突

接口静态方法

既然已经有了默认方法,那么支持接口的静态方法也就一点都不奇怪了。

相关文章

  • Lambda表达式

    title: Lambda表达式date: 2017-01-16 02:39:56tags: Java 读书笔记 ...

  • Java 学习笔记(13)——lambda 表达式

    title: Java 学习笔记(11)——lambda 表达式tags: [Java 基础, 学习笔记, 函数式...

  • Lambda 表达式

    Lambda 表达式 声明:java8新特性系列为个人学习笔记,参考地址点击这里,侵删!! Lambda 表达式,...

  • Java 8 - Lambda表达式

    Java 8 - Lambda表达式 1 Java 8-概述2 Java 8 - Lambda表达式3 Java ...

  • 【Java】4.0 Java中lambda表达式(下)

    【Java】3.0 Java中lambda表达式(上)【Java】4.0 Java中lambda表达式(下) 7....

  • java 8 lambda表达式中的异常处理

    java 8 lambda表达式中的异常处理 简介 java 8中引入了lambda表达式,lambda表达式可以...

  • 2018-10-23

    java学习笔记(四) 简单地讲讲Lambda表达式 Lambda管中窥豹 在前一篇文章中,已经看见了Lambda...

  • Java8学习笔记目录

    Java8学习笔记 -- 接口的默认方法与静态方法 Java8学习笔记 -- Lambda表达式,Function...

  • java8

    1.lambda表达式《java8 Lambda表达式简介》 《java8 lambda表达式,方法的引用以及构造...

  • 《Java 8实战》学习总结

    Java 8新特性概览 Lambda表达式 流 默认方法 Lambda表达式 Lambda和函数式接口Java 8...

网友评论

      本文标题:JAVA笔记#01 Lambda表达式

      本文链接:https://www.haomeiwen.com/subject/dulzehtx.html