2016-11-22 5 views
4

toList演算子が実行した後、元々Flowable < < \ List >>に変換します。< < \ List >>私がSingleを購読するConsumerを作成すると、 Consumerの値の型はObject以外では変更できません。私のコメントからrxjava2のメソッド 'subscribe(anonymous io.reactivex.functionx.Consumer <java.util.List <...>>)'を解決できませんか?

@Override 
public void loadBannerData(final ADFilterType adFilterType) { 
    remoteListDataSource.getBannerListData(adFilterType) 
      .flatMap(new Function<List<BannerBeanList.BannerBean>, Publisher<?>>() { 
       @Override 
       public Publisher<?> apply(List<BannerBeanList.BannerBean> bannerBeen) throws Exception { 
        return Flowable.fromIterable(bannerBeen); 
       } 
      }) 
      .toList() 
      .subscribeOn(Schedulers.io()) 
      .observeOn(AndroidSchedulers.mainThread()) 
      /******************************Consume Value Type************************** 
      .subscribe(new Consumer<List<BannerBeanList.BannerBean>>() { 
       @Override 
       public void accept(List<BannerBeanList.BannerBean> bannerBeens) throws Exception { 
        mainTabView.showMainBanner(bannerBeens); 
       } 
      }); 
      *****************************************************************************/ 
} 
+3

これは、コードに 'Publisher 'の代わりに 'Publisher 'があるためです。 – akarnokd

+0

@akarnokdありがとう、私は出版される予定の要素のタイプを指定する必要があります。 – Qin

答えて

5

:あなたのコードでPublisher<?>代わりのPublisher<BannerBeanList.BannerBean>を持っているので、これは起こります。多くの場合、IDEはラムダや機能インタフェースのタイプを推測することはできません。またはオブジェクトを型として使用して、生成/変換リファクタリング機能を使用します。

+0

「パブリッシャーの代わりにパブリッシャーがある」という意味 – minhaz

+0

回答を更新しました。型argumen '<>'はエスケープされませんでした。 – akarnokd

関連する問題