1.Lambda表达式
举例:
Comparator< Integer> com =(o1,o2)-> {Integer.compare(o1,o2)};
其中,
-
-> 称为 Lambda操作符或箭头操作符
-
->左边:Lambda形参列表(其实就是接口中的抽象方法的形参列表)
-
->右边:Lambda 体(其实就是重写的抽象方法的方法体)
总结一下就是 lambda形参列表的数据类型可以省略;如果lambda形参列表只有一个参数,小括号可以省略;如果lambda体只有一条执行语句(可能是return语句),则大括号和return关键字可以省略;lambda表达式其实是作为接口的实例出现的,此接口有且只有一个抽象方法,称为函数式接口。
2.方法引用的使用
当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用。个人理解就是,接口里的抽象方法有类似的实现了,可以用已有的实现来代替抽象方法的实现,称之为引用。
常见格式如下:
- 对象 :: 非静态方法
- 类 :: 靜态方法
- 类 :: 非靜态方法
.方法引用使用的要求是,接口中的抽象方法的形参列表和返回值类型与方法引用的方法的形参列表和返回值类型相同!