通过类名称引用静态方法:
通过类名引用静态成员方法
类已经存在,静态成员方法已经存在
就可以通过类名直接引用静态成员方法
示例:
函数式接口
package demo06.StaticMethodReference;
@FunctionalInterface
public interface Cabcable {
//定义一个抽象方法,传递一个整数,对整数进行绝对值计算并返回
int calaAbs(int number);
}
public class Demo01StaticMethodReference {
//定义一个方法,方法的参数传递要计算绝对值的整数,和函数式接口Calcable
public static int method(int number,Cabcable c){
return c.calaAbs(number);
}
public static void main(String[] args) {
//调用method方法,传递计算绝对值的整数,和Lambda表达式
int number = method(-10, (n) -> {
//对参数进行绝对值计算并返回结果
return Math.abs(n);
});
System.out.println(number);
int i = method(-23, Math::abs);
System.out.println(i);
}
}
在这个例子中,下面两种写法是等效的:
Lambda表达式: n -> Math.abs(n)
方法引用: Math::abs
程序演示: