小编Jan*_*Jan的帖子

将future.onComplete与Java和Akka一起使用,使用不同的Result作为String

我有以下问题......

我正在使用Java中的Akka 2.3.6并希望完成以下任务:

Future<Object> future = ask(actor, new GetPOIDataMessage(tenant), Timeout.durationToTimeout(duration));
    future.onSuccess(new OnComplete<NonSimpleObject>() {
                          public void onComplete(Throwable failure, final NonSimpleObject data) {
                              if (failure != null) {
                                  deferredResult.setErrorResult("An error occured during the request");
                              } else {
                                  deferredResult.setResult(data);
                              }
                          }
                      }, ec);
Run Code Online (Sandbox Code Playgroud)

NonSimpleObject是从actor发回的消息的类型.编译我的代码时出现以下错误:

error: method onSuccess in interface Future<T> cannot be applied to given types;
[error]         future.onSuccess(new OnComplete<NonSimpleObject>() {    
[error]               ^
[error]   required: PartialFunction<Object,U>,ExecutionContext
[error]   found: <anonymous OnComplete< NonSimpleObject >>,ExecutionContext
[error]   reason: cannot infer type-variable(s) U
[error]     (argument mismatch; <anonymous OnComplete< NonSimpleObject …
Run Code Online (Sandbox Code Playgroud)

java future akka

2
推荐指数
1
解决办法
7357
查看次数

标签 统计

akka ×1

future ×1

java ×1