java.util.function.Function 中的状态
State in a java.util.function.Function
假设我有一个 class
其中 implements
java.util.function.Function
。 Function
需要知道开始日期和结束日期 但是 这些在函数的整个生命周期中都是不变的。
我正在考虑使用 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;
};
}
将对象替换为您需要的任何内容。
假设我有一个 class
其中 implements
java.util.function.Function
。 Function
需要知道开始日期和结束日期 但是 这些在函数的整个生命周期中都是不变的。
我正在考虑使用 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;
};
}
将对象替换为您需要的任何内容。