0

我无法从 Future 对象中检索值。下面是代码供参考

Future<Configure> conf = getLatestVersion(request);
Configure cc = conf.result();
float previousVersion = cc.getVersionNo();

这是 getLatestVersion(request) 的实现


public Future<Configure> getLatestVersion(Configure request) {
        Future<Configure> result = Future.future();
        configRepository.getLatestVersionNo(request).setHandler(res -> {
            if (res.succeeded()) {
                result.complete(res.result());
                System.out.println("==result from db =="+res.result());
                System.out.println("== getVersionNo ="+res.result().getVersionNo());
            } else {
                result.fail(res.cause());
            }
        });
        return result;

    }

在 SOP 中,我可以从result.result()和获取值result.result().getVersion(),但是在将此方法的结果返回给上述调用者后,我无法获取这些值。

我想在这里实现的是我需要ConfigureFuture<Configure>.

4

1 回答 1

0

您应该使用onComplete()回调(或setHandler()在早期版本中):

Future<Configure> conf = getLatestVersion(request);
conf.onComplete( res -> {
  if( res.succeded() ){
    Configure cc = res.result();
    float previousVersion = cc.getVersionNo();
  }
} );

于 2020-05-14T17:24:15.010 回答