java - 不存在类型变量 U 的实例,因此 Row 符合 Iterable<?延伸 U>

标签 java generics rx-java guava

我有一个返回 ResultSet 的 Observable 的方法:

public static Observable<ResultSet> queryAllAsObservable(Session session, String query, Object... partitionKeys) {
    List<ResultSetFuture> futures = sendQueries(session, query, partitionKeys);
    Scheduler scheduler = Schedulers.io();
    List<Observable<ResultSet>> observables = Lists.transform(futures, (ResultSetFuture future) -> Observable.fromFuture(future, scheduler));
    return Observable.merge(observables);
}

现在我需要创建此方法的一个版本,它返回 Row 的 Observable。这是我尝试过的:

public static Observable<Row> queryAllAsRowObservable(Session session, String query, Object... partitionKeys) {
    List<ResultSetFuture> futures = sendQueries(session, query, partitionKeys);
    Scheduler scheduler = Schedulers.io();
    List<Observable<ResultSet>> observables = Lists.transform(futures, (ResultSetFuture future) -> Observable.fromFuture(future, scheduler));
    return Observable.merge(observables).flatMapIterable(item -> item.one());
}

但是 item -> item.one() 被标记为错误:

no instance(s) of type variable(s) U exists so that Row conforms to Iterable<? extends U>

最佳答案

flatMapIterable 对于您在尝试执行的操作时的类型错误。您可以使用 map 而不是 flatMapIterable,或者重新考虑使用 merge

关于java - 不存在类型变量 U 的实例,因此 Row 符合 Iterable<?延伸 U>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56849911/

相关文章:

rx-java - 接收 : a zip-like operator that continues after one of the streams ended?

android - 支持 RxJava 的链式改造服务

java - 使用 JSch 列出 SFTP 中的前 N ​​个文件

java - 如何在 ArrayList 中提取数据直到 RAM 不耗尽

java - 为什么基于 Class.class 的转换有效但 getClass 无效?

Scala 函数式编程泛型

java - 一个让我困惑的简单字符串查询

java - com.android.dex.DexIndexOverflowException : Error:Execution failed for task "...\Java\jdk1.7.0_17\bin\java.exe" finished with non-zero exit value 2

Java 集合 : List<Animal> tiger = new ArrayList<Tiger>() WRONG

Kotlin 和 RxJava 类型推断失败