在Java中,方法引用本身并不直接绑定到接口的方法,但它们可以用于满足函数式接口(Functional Interface)的抽象方法。函数式接口是只包含一个抽象方法的接口,如 java.util.function 包中的 Predicate<T>, Function<T, R>, Consumer<T>, 等等。
当你使用方法引用时,你实际上是在提供一个方法作为参数,这个方法与函数式接口的抽象方法签名相匹配。方法引用是Lambda表达式的一种简写形式,它允许你直接引用已有方法、构造函数或者实例方法。
Stream::allMatch 方法接受一个 Predicate<T> 类型的参数。Predicate<T> 是一个函数式接口,其定义了一个返回布尔值的 test(T t) 方法。你可以通过方法引用来提供一个满足这个接口的方法。
虽然方法引用本身并不直接绑定到接口的方法,但它们可以用于满足函数式接口的抽象方法。在传递给 Stream::allMatch 或其他接受函数式接口作为参数的方法时,方法引用提供了一种简洁的方式来引用已存在的方法。