栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Lambda表达式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Lambda表达式

lambda表达式的本质
	作为函数式接口的实例对象
函数式接口
	1.一个接口中,只定义了一个抽象方法,则为函数式接口
	2.可以在接口上显示加上@functionalInterface注解,来控制只有一个抽象方法
例子
	函数式接口 = (形参列表)-> {方法体} 这是规范的模型
lambda表达式的具体语法
	1.无参,有参规范模型
		1.Runnable r = ()-> {方法体}
		2.Consumer(String s)-> {sout(s)}
	2.有参,数据 类型省略(接口泛型类型,和抽象方法参数类型一致时)
		Consumer c = (s) -> {sout(s)}
	3.参数只有一个时可以省略()
		1.Consumer c = s -> {sout(s)}
		2.Consumer c =(String s) -> {sout(s)}
	4.当 方法体 只有 一句时,可以省略大括号,并且若这一句是return的话,return也可省略
		Comparator c = (x,y) -> Integer.compare(x,y)
方法引用(Lambda表达式的简化)
	1.理解:方法体去调用其他类或对象的方法的时候可以采用,就是方法体已经有实现的方法来代替了,智取要调用即可
	2.要求注意:实现接口的抽象方法的参数列表和返回值类型,必须与方法引用的
	  方法的参数列表和返回值类型保持一致!
		
	3.如下三种主要使用情况
		  对象::实例方法名
		  类::静态方法名
		  类::实例方法名(特别注意) 
		  	使用条件:1.函数式接口方法有两个参数
		  			  2.第一个参数是引用方法的调用者
		  			  3.第二个参数是引用方法的参数
		  	例如:BitPredicate b = (x,y)->{x.equals(y)}
		  		  BitPredicate b = String::equals
构造器引用(Lambda的简化)
	1.同样满足:接口和方法引用的参数列表一致,返回值类型一致
	2.只是特例化:方法引用变成了构造方法
	3.使用格式:ClassName::new
	4.例子:Function f = (n)->new Myclass(n)
			Function f = Myclss::new
数组引用
	和构造器引用一样,只是构造器为数组
	例子:Function f = (length)-> new String[length]
		 Function f = String[]::new
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/298037.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号