Supplier接口是一个预定义的接口,表示结果的提供者。它是使用lambda表达式、方法引用或默认构造函数实例化的。Supplier接口的函数方法是get()方法。此接口属于java.util.function函数接口。
语法@FunctionalInterface
public interface Supplier
在下面的程序中,我们可以在lambda表达式中使用Supplier接口。因为lambda()只返回一个参数为空的表达式,所以它不接受任何参数。
示例import java.util.*;
import java.util.function.*;
public class SupplierTest {
public static void main(String args[]) {
Supplier supplier1 = () -> "Nhooo"; // lambda表达式
System.out.println(supplier1.get());
Supplier supplier2 = () -> 7; // lambda表达式
System.out.println(supplier2.get());
Person p = new Person("Raja");
Person p1 = get(() -> p);
Person p2 = get(() -> p);
System.out.println(p1.equals(p2));
}
public static Person get(Supplier supplier) {
return supplier.get();
}
}
// Person 类
class Person {
public Person(String name) {
System.out.println(name);
}
}
输出结果Nhooo
7
Raja
true