Java8中的方法引用是什么?
Java中的Lambda表达式使您可以将功能作为参数传递给方法。您也可以使用lambda表达式调用现有方法。
list.forEach(n -> System.out.println(n));
方法引用是简单,易于阅读的lambda表达式,可通过lambda表达式来调用/引用以及现有方法的名称。
语法
Object:methodName
示例
假设,如果我们有一个名为myInterface的接口,我们可以将功能/实现作为对象值传递,如下所示-
interface myInterface{ void greet(); } public class MethodReferences { public static void main(String args[]) { myInterface in = ()->System.out.println("Sample method");; in.greet(); } }
如果我们已经有此方法的实现,则可以将lambda表达式用作-
interface myInterface{ void greet(); } public class MethodReferences { public void demo() { System.out.println("Sample method"); } public static void main(String args[]) { MethodReferences obj = new MethodReferences(); myInterface in = ()-> obj.demo(); in.greet(); } }
您可以使用方法引用而不是lambda表达式来引用现有方法,例如-
interface myInterface{ void greet(); } public class MethodReferences { public void demo() { System.out.println("Sample method"); } public static void main(String args[]) { MethodReferences obj = new MethodReferences(); myInterface in = obj::demo; in.greet(); } }
输出结果
Sample method