java 函数式接口是仅包含一个抽象方法的接口,允许将其作为参数或值传递。supplier 函数式接口是一种不接受参数并返回特定类型的对象的函数式接口,其用法如下:定义一个 supplier 函数式接口来返回一个值。调用 get() 方法获取值。实战案例:可以使用 supplier 函数式接口生成随机的学生名称和成绩值对。
Java 函数式接口与 Supplier 函数式接口
何为函数式接口
函数式接口是一种仅包含一个抽象方法的接口,它允许将其用作参数或值传递。
Supplier 函数式接口
Supplier 函数式接口是 Java 标准库中提供的函数式接口,它表示不接受任何参数并返回特定类型的对象的函数。
用法:
// 定义一个 Supplier 函数式接口来返回一个字符串 Supplier
supplier = () -> "Hello, world!"; // 调用 get() 方法获取值 String message = supplier.get();
实战案例:
假设有一个列表包含学生的成绩,需要创建一个函数式接口来生成每个学生的名称和成绩的随机值对。
import java.util.List;
import java.util.Random;
import java.util.function.Supplier;
class Student {
private String name;
private int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public int getScore() {
return score;
}
}
public class SupplierDemo {
public static void main(String[] args) {
List names = List.of("John", "Alice", "Bob");
Random random = new Random();
// 定义 Supplier 函数式接口来生成一个随机学生实例
Supplier studentSupplier = () ->
new Student(names.get(random.nextInt(names.size())), random.nextInt(100));
// 创建 10 个随机学生并打印他们的名称和成绩
for (int i = 0; i < 10; i++) {
Student student = studentSupplier.get();
System.out.println(student.getName() + ": " + student.getScore());
}
}
}









