Lambda表达式是一种匿名方法(无名称的方法),用于提供由 功能接口定义的方法的内联 实现 ,而 方法引用类似于引用 Lambda表达式的方法,该Lambda表达式引用了未执行的方法。箭头(->)运算符可用于在lambda表达式中连接参数和功能,而(::)运算符可将方法名称与方法引用中对象或类的名称分隔开。
([comma seperated argument-list]) -> {body}
<classname> :: <methodname>
import java.util.*; public class LambdaMethodReferenceTest { public static void main(String args[]) { List<String> myList = Arrays.asList("INDIA", "AUSTRALIA", "ENGLAND", "NEWZEALAND", "SCOTLAND"); System.out.println("------- Lambda Expression --------"); //使用Lambda函数调用system.out.println() myList.stream().map(s -> s.toUpperCase()) .forEach(s -> System.out.println(s)); System.out.println("------- Method Reference ---------"); //使用方法引用来调用system.out.println() myList.stream().map(String :: toUpperCase).sorted() .forEach(System.out :: println); } }
输出结果
------- Lambda Expression -------- INDIA AUSTRALIA ENGLAND NEWZEALAND SCOTLAND ------- Method Reference -------- AUSTRALIA ENGLAND INDIA NEWZEALAND SCOTLAND