方法引用_通过类名引用静态成员方法
package com.chunzhi.Test06StaticMethodReference; /* 通过类名引用静态成员方法 类名已经存在,静态成员变量方法也已经存在 就可以通过类名直接引用静态成员方法 */ public class Test01StaticMethodReference { // 定义一个方法,方法的参数传递要计算绝对值的整数,和函数式接口Calculable public static int method(int number, Calculable c) { return c.calAbs(number); } public static void main(String[] args) { // 调用method方法,传递计算绝对值的整数,和Lambda表达式 int number = method(-10, (int num) -> { // 对参数进行绝对值的计算,并返回结果 return Math.abs(num); // abs是静态方法,可以通过类名直接调用 }); System.out.println(number); /* 使用方法引用优化Lambda表达式 Math类是存在的 abs计算绝对值的静态方法也是存在的 所以我们可以直接通过类名引用静态方法 */ int number02 = method(-20, Math :: abs); System.out.println(number02); } }
函数式接口Calculable接口:
package com.chunzhi.Test06StaticMethodReference; @FunctionalInterface public interface Calculable { // 定义一个抽象方法,传递一个整数,对整数进行绝对值计算并返回 public abstract int calAbs(int number); }