java.util.function.Function 中的状态

State in a java.util.function.Function

假设我有一个 class 其中 implements java.util.function.FunctionFunction 需要知道开始日期和结束日期 但是 这些在函数的整个生命周期中都是不变的。

我正在考虑使用 private final 字段作为开始日期和结束日期来实施 Function,因为 apply 方法不需要每次调用都为它们设置新值。我觉得这会简化我的实现,但担心这会违背整个函数式编程范式。

apply 方法需要值但在 Function 的整个生命周期中保持不变时,Function 中具有不可变的 class 成员是否合理?

你的做法没有问题。

I feel that this will simplify my implementation but worry that this goes against the whole functional programming paradigm.

要解决这个问题,您可以实现一个方法,该方法获取您的开始和结束日期,returns 您可以实现一个函数。例如:

public static final Function<Object, Object> getDateF(final Date start, final Date end) {
  return input -> {
    // do something with start / end for your calculation
    final Object output = null;
    return output;
  };
}

将对象替换为您需要的任何内容。