Java 承诺归还游戏$Promise@65722df2而不是字符串值

Java 承诺归还游戏$Promise@65722df2而不是字符串值,java,playframework,promise,future,Java,Playframework,Promise,Future,所以我只是在游戏中进行实验,我想看看是否可以使用promise函数来返回字符串 在本例中,我试图获取一个UserFirstName,而不是play.libs.F的值$Promise@65722df2. public static String retrieveUserFirstName(String ch, Service Service, SessionContext SessionContext, String

所以我只是在游戏中进行实验,我想看看是否可以使用promise函数来返回字符串

在本例中,我试图获取一个UserFirstName,而不是play.libs.F的值$Promise@65722df2.

  public static String retrieveUserFirstName(String ch, Service Service,
                                     SessionContext SessionContext, String aN) {

      return Service.getInformation(UteContextArgs.getProcessingContext(),
              SessionContext, aN, ch)
              .filter(info -> info instanceof Information)
              .filter(info -> Constants.ch.equalsIgnoreCase(ch))
              .map(info -> {
                  Information information = (Information) info;
                  return information.getFirstName();
              }).toString();
  }


  public void trySomething (){

      String userFirstName = retrieveUserFirstName(ch, Service,
                                     SessionContext, aN);

      logger.info (context, "here is the userfirstname={}", userFirstName);

  }

  public F.Promise<Information> getInformation(...) {
  ...
  }

您当前得到的是
Promise
本身的字符串表示,而不是其
字符串
结果


您需要查看承诺的结果。

您是否在
Promise
Information
类中实现了
toString
方法?感谢您的回复,我看到get需要“用户定义的毫秒超时”,定义此超时的最佳实践是什么?最佳实践是了解您预期超时需要多长时间、您愿意等待多长时间、您准备超时的频率等。这些都取决于您的特定应用程序。
  here is the userfirstname=play.libs.F$Promise@ca3706e