“如何写作”;(事件、状态)>;“国家”;Java上的函数
我想编写折叠函数,比如“(事件,状态)->state”。如果Java中没有任何模式匹配和不可变,我如何编写它?我想您正在寻找Java中的函数编程。“如何写作”;(事件、状态)>;“国家”;Java上的函数,java,pattern-matching,Java,Pattern Matching,我想编写折叠函数,比如“(事件,状态)->state”。如果Java中没有任何模式匹配和不可变,我如何编写它?我想您正在寻找Java中的函数编程。 Lambda表达式是Java8中的一个新语言特性,在本版本中引入。它们使您能够将功能视为方法参数,或将代码视为数据。Lambda表达式使您能够更简洁地表达单个方法接口(称为函数接口)的实例。 在这里了解更多信息,Java 8+允许您使用BiFunction实现这一点的方法之一。例如: public BiFunction<Event, State
Lambda表达式是Java8中的一个新语言特性,在本版本中引入。它们使您能够将功能视为方法参数,或将代码视为数据。Lambda表达式使您能够更简洁地表达单个方法接口(称为函数接口)的实例。
在这里了解更多信息,Java 8+允许您使用
BiFunction
实现这一点的方法之一。例如:
public BiFunction<Event, State, State> biFunctionMethod(){
return (event, state) -> {
Object obj = doSomethingWithEventAndOldState(event, state);
return new State(obj); // not changing the old state
};
}
听起来你在找。
public void run(){
State newState = biFunctionMethod().apply(event, state);
}