前言
功能接口是只有一个抽象方法的接口,创建一个lambda表达式时,需要有一个对应的功能接口。lambda表达式可以认为是一个功能接口的抽象方法的具体实现。有一种极端情况,就是一个lambda表达式里面的逻辑非常简单,它只是简单地调用了一个方法。针对这种情况我们就可以省去lambda表达式,改为方法引用,即通过这个方法的名称对这个方法直接进行引用。方法引用是由lambda表达式演进而来的,是针对lambda表达式的一种特殊情况的简化。
静态方法引用语法:
Class::staticMethod
该种方法引用取代的lambda表达式形式如下:
(args) -> Class.staticMethod(args)
静态方法引用取代的是在lambda表达式中通过类名调用一个静态方法的lambda表达式形式。静态方法引用最简单,在方法引用中,不需要传入方法的参数。如下示例中,Math类的abs方法用于返回入参的绝对的值,我们分别使用了匿名类、lambda表达式和静态方法引用3种方式调用了method01方法,其中Function功能接口的具体实现均为调用Math类的静态方法abs返回参数的绝对值。
package com.zhy.demo.javase.method.references;
import java.util.function.Function;
/**
* @ClassName StaticMethod
* @Description (静态方法引用)
* @author ZHY
* @date 2022年2月9日 上午11:09:50
* @Cop