“如何写作”;(事件、状态)>;“国家”;Java上的函数

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

我想编写折叠函数,比如“(事件,状态)->state”。如果Java中没有任何模式匹配和不可变,我如何编写它?

我想您正在寻找Java中的函数编程。

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);
}