не существует экземпляра (ов) переменной типа (типов) U, так что строка соответствует Iterable - PullRequest
0 голосов
/ 02 июля 2019

У меня есть метод, который возвращает Observable of ResultSet:

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);
}

Теперь мне нужно создать версию этого метода, которая вместо этого возвращает Observable of Row. Вот что я попробовал:

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>

1 Ответ

1 голос
/ 07 июля 2019

flatMapIterable имеет неправильный тип для того, что вы пытаетесь сделать в тот момент, когда вы пытаетесь это сделать. Вы можете использовать map вместо flatMapIterable или пересмотреть использование merge.

...