Supplier 的 return 值可以递增吗

Can the return value for Supplier be incremental

我目前正在处理主题 消费者供应商 并有以下问题。 Supplier 的 return 值可以递增吗?

以下人为设计的示例:我有一个简单的 class Person,其中 idname。例如,如果出于测试目的我需要 10 个人,我想使用顺序 ID 轻松生成它们。从供应商那里获取 ID 时如何增加它?

class Person {
    long id;
    String name;
}

做这样的事情是我的想法:

Supplier<Long> ids      = ()-> 1L;
Supplier<String> names  = ()-> UUID.randomUUID().toString();

for (int i = 0; i < 10; i++) {
    Person p = new Person(ids.get(), names.get());
    System.out.println(p);
}

或者结构 Supplier 不适用于此类用例?

当然可以。您不必使用 lambda。

new Supplier<Long>() {
  long x = 0;
  @Override public Long get() {
    return x++;
  }
}