gpt4 book ai didi

java - 如何在 Java 中实现 Function1(其 compose 和 andThen 方法)?

转载 作者:行者123 更新时间:2023-12-02 00:38:38 29 4
gpt4 key购买 nike

我正在使用 Akka Java API,在其中一个参与者中,我希望接收回调并在完成时对其进行处理。

我想要实现这样的目标:

Future future = Patterns.ask(actorRefMap.get(order.getInstrument()), order, 500);
future.onComplete(getSender().tell(String.format("{} order processed for instrument {} with price {}", order.getOrderType(), order.getInstrument(), order.getPrice()), getSelf()), getContext().dispatcher());

使用我当前的代码,我的第一个参数错误,发现“void”需要“scala.Function1”。我们如何在 Java 中实现 scala.Function1 ?

最佳答案

您需要将其作为函数传递:

Future future = Patterns.ask(actorRefMap.get(order.getInstrument()), order, 500);
future.onComplete(() -> getSender().tell(String.format("{} order processed for instrument {} with price {}", order.getOrderType(), order.getInstrument(), order.getPrice()), getSelf()), getContext().dispatcher());

...重要部分是:

future.onComplete(() -> ...)

而不是

future.onComplete(...)

如果它需要 scala.Function1 而不是 java.util.Function,请确保导入 Java DSL (akka.actor.typed.javadsl .AskPattern),而不是 Scala DSL ...

关于java - 如何在 Java 中实现 Function1(其 compose 和 andThen 方法)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57957654/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com