私はそれらのそれぞれにリストが含まれている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ストリームを使用しないように何の正当な理由を見ません。