于凤明

个人站

一个刚刚接触代码的小白,以后的路还很长


java中最强语法--lambda表达式

lambda表达式

lambda表达式形式:参数,箭头(->)以及一个表达式,也可以将操作放在代码块{}中。

(String first,String second)->
{
	if(first.length()>second.length()) return 1;
	else if(first.length()<second.length()) return -1;
	else return 0;
}

() -> System.out.pringln("i");

对于只有一个抽象方法的接口,需要这种接口的对象时,就可以提供一个lambda表达式。这种接口称为函数式接口。Comparator 就是只有一个方法的接口, 所以可以提供一个lambda 表达式:

函数式接口中可以包含静态方法(已经实现了的方法),默认方法(default),java.lang.Object里的public方法。

Arrays.sort (words ,
	(first , second) -> first.length() - second.length()) ;

方法引用

Timer t = new Timer(1000, event -> System.out.println(event));
//等价于
Timer t = new Timer(1000, System.out::println);

表达式System.out::println是一个方法引用,等价于前面的lambda表达式。主要有3中形式:

//System.out.println == x->System.out.println(x)
object::instanceMethod
//Math.pow(x,y) == (x,y)->Math.pow(x,y)
Class::staticMethod
//String::compareToIgnoreCase == (x,y)->x.compareToIgnoreCase(y)
Class::instanceMethod

Copyright description

    ➩  如需转载请注明出处:凤明的博客 » https://victorfengming.github.io/#blog

    ➩  小编CSDN链接地址: 秋叶夏风的博客 » https://blog.csdn.net/qq_40223983

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦