通过类名引用静态的成员方法
package cn.com.cqucc.demo05.ObjectStaticMethodReference.Test05.ObjectStaticMethodReference;
/*
* 通过类名引用 静态的成员方法
* 使用的首要条件是 :
* 该类已经存在,静态方法也是存在的就可以使用方法引用了
* */
public class Test01Main {
public static void main(String[] args) {
// 实现方式一 : 匿名内部类
int abs = method(-20, new Calc() {
@Override
public int calcAbs(int num) {
return Math.abs(num);//直接调用 Math类的静态方法 abs 对整数进行去绝对值并返回
}
});
System.out.println(abs);//20
// 实现方式二 Lambda表达式
int absA = method(-100, s -> Math.abs(s));
System.out.println(absA);//100
// 实现方式三 Lambda表达式 + 方法引用
int absB = method(-50, Math::abs);
System.out.println(absB);//50
}
// 定义一个方法方法的参数传递 一个需要取绝对值的整数 和一个函数式接口
public static int method(int num, Calc calc) {
return calc.calcAbs(num);
}
}
package cn.com.cqucc.demo05.ObjectStaticMethodReference.Test05.ObjectStaticMethodReference;
/*
* 定义一个函数式 接口 传递一个整数 ,对整数取绝对值之后返回
* */
public interface Calc {
// 定义一个抽象方法 用于 对一个整数进行取绝对值之后返回
int calcAbs(int num);
}