在Java 8中,我正在编写一个DAO方法,该方法调用返回ListenableFuture的方法(在这种情况下,它是返回ResultSetFuture的Cassandra异步查询)。
然而,我不知道如何将Future返回给DAO方法的调用者。我不能只返回ResultSetFuture,因为该future返回ResultSet。我想处理ResultSet并返回不同的对象。例如:
然而,我不知道如何将Future返回给DAO方法的调用者。我不能只返回ResultSetFuture,因为该future返回ResultSet。我想处理ResultSet并返回不同的对象。例如:
public ListenableFuture<ThingObj> queryForThingAsync(String thingId) {
ListenableFuture<ResultSet> rsFuture = db.getSession().executeAsync(QueryBuilder.select().all().from("thingSchema","Thing").where(eq("thingId",thingId)));
// Now what? How do I create a ListenableFuture<ThingObj> given a ListenableFuture<ResultSet> and a method that can convert a ResultSet into a ThingObj?
}
ListenableFuture
类型,而JDK没有。 - Thorn GCompletableFuture
提供另一种解决方案。 - Thorn G