それはOKのJava 8つのストリームと一緒に反応するストリームであるモノ&フラックスオブジェクトすなわち反応性のコードの混在使用することです

アルン・グプタ:

私はそれらのそれぞれにリストが含まれている2つのオブジェクトを持っているし、私の全体の春ブーツプロジェクトは、プロジェクトの原子炉の構築物を用いています。万一私の使用のJavaは、フラックスやデータのトラバース&操作のためのモノマップ操作の内側にストリーム?

Flux.fromIterable(page.getPageFieldData()).subscribeOn(Schedulers.elastic()).map(pageField - > {
        clientDataMono.subscribeOn(Schedulers.elastic()).map(clientData - > {
            Flux.fromIterable(clientData.getPageFieldData())
            .filter(clientPageField - > clientPageField.getId() == pageField.getId())
            .subscribeOn(Schedulers.elastic()).map(field - > {
                dataUpdated = true;
                pageField.setData(field.getData());
                return field;
            }).subscribe();
            return clientData;
        }).subscribe();
        if (dataUpdated) {
            pageField.setModifiedOn(Instant.now(Clock.systemUTC()));
        }
        return pageField;
    }).subscribe();

それとも私は、フラックスのマップ操作内のJavaストリームを使用する必要があります。

マイケル・ベリー:

私は時々、私たちは、Java 8の登場直後の考え方「すべてのためにストリームを使用したい」と同じの焼き直しを見ているように感じるが、原子炉/ RXJavaと。

万一私の使用のJavaは、フラックスやデータのトラバース&操作のためのモノマップ操作の内側にストリーム?

短い答えは、あなたがあればということであることができ sensbily Javaのストリームを使用し、原子炉が状況で任意の利点を提供していませんし、原子炉を使用する理由はありません。ときユースケースそれを求める声が、それは外部のライブラリのことに注意してください(コアJREにバンドルされていない)反応器/反応性プログラミングは素晴らしいです、それははるかに複雑だし、あまり普遍的標準のJavaストリームよりも理解していました。

反応器は、ずっともちろん、はるかに強力です。あなたはなど、再試行、キャッシング、マルチキャスト、高速の値が生成されるか、背圧、詳細なパブリッシャー/サブスクライバの行動を支配する必要が、またはあなたが実行可能に将来的には、それは毎回ダウンの手を勝つことがあります。場合

あなたは文字通りあなたがその例にあるように見えるように、どこ反応器は何の改善を提供することができなかった、既存のJavaコレクションをフィルタリングし、マッピングしている場合でも、私は、標準のJavaストリームを使用しないように何の正当な理由を見ません。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=331179&siteId=1