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