Java中 lambda表达式的方法引用
方法引用是lambda表达式中引用方法而不执行该方法的方法。在lambda表达式的主体中,如果它们与功能接口兼容,则可以调用另一个方法。
运算符 “::”可用于将类名与方法名分开。
方法引用静态方法
使用类名引用了静态方法。在lambda表达式中,我们可以使用以下语法引用静态方法。
句法
Class-name :: Method-name;
示例
interface Test { void func(); } class StaticMethodRef { static void message() { System.out.println("Welcome to www.nhooo.com"); } } public class LambdaMethodRefTest1 { public static void main(String arg[]) { Test test = StaticMethodRef :: message; //使用“ ::”运算符调用 test.func(); } }
输出结果
Welcome to www.nhooo.com
对实例方法的方法引用
通过使用lambda表达式来引用实例方法。我们需要引用一个实例方法,使用实例名称而不是类名称。“::”运算符还可用于引用实例方法。
语法
Instance-name :: Method-name;
示例
interface Test { void func(); } class InstanceMethodRef { void message() { System.out.println("Welcome to www.nhooo.com"); } } public class LambdaMethodRefTest2 { public static void main(String arg[]) { InstanceMethodRef ref = new InstanceMethodRef(); Test test = ref :: message; //使用“ ::”运算符调用 test.func(); } }
输出结果
Welcome to www.nhooo.com