java基础篇~~~lambda

一 前言

  最近面试的时候,开始整理自己学过的知识,发现了自己写的思维导图,就想着把导图中写的东西,写到博客里,学lambda表达式的原因是因为···想学习java8的新特性,嗯,就是这样!!!(不会告诉你们是我看不懂,想让别的萌新也看不懂才学的)

二定义

  a function (or a subroutine) defined, and possibly called, without being bound to an identifier---一个不用被绑定到一个标识符上,并且可能被调用的函数(大概是这个意思)

三 lambda语法

  1 参数可以是零到多个;

  2 参数类型可以指定,可省略(它是可以根据表达式上下文推断出来的~~);

  3 参数包含在原括号中,用逗号分隔;

  4 表达式主体可以零条或多条语句,包含在花括号中;

  5 表达式主体只有一句语句时,表达式的返回类型与代码块的返回类型一致;

  6 表达式主体有一条以上语句时,表达式的返回类型与代码块的返回类型一致;

  7 表达式只有一条语句时,表达式的返回类型与该语句的返回类型一致;

四 简化版

  1 编译器通过上下文推断;

  2 当lambda表达式的参数个数只有一个,可以省略小括号;

  3 当lambda表达式只包含一条语句时,可以省略大括号、return和语句结尾的分号;

  4 使用Method Reference;

五 方法引用

  构造器引用 :: ClassName::new

  方法引用::static方法的引用                ContainingClass::staticMethodName

        特定对象的方法的引用    containingObject::instanceMethodName

        特定类型的方法的引用       ContainingType::methodName

六 总结

  现在尽量能使用就使用lambda语句,代码看起来更简洁和易读(在不会的前提下,lambda表达式和方法引用一起使用,简直丧心病狂!!!);

猜你喜欢

转载自www.cnblogs.com/shaoxiaosa/p/9853540.html