CompletableFutureを勉強中。thenApplyとthenComposeで混乱中。Mitsuyuki.Shiibaスマートフォン用の表示で見るMitsuyuki.Shiiba2016-06-08CompletableFutureを勉強中。thenApplyとthenComposeで混乱中。́∀`)∩ワーイJavaFluxとかMonoの勉強しようと思って、よこみちにそれて。bufferings.hatenablog.comその流れで、Java8にCompletableFutureなるものがあることを知り。www.safaribooksonline.com面白かったのでまた別の機会にまとめをメモしときたいなと思いつつ。2016確かに!ふむふむ。書籍のサンプルコードはこんな流れなんだけど。.collect(toList());この、thenComposeを使う代わりに、thenApplyで同期的に呼び出しても、いいんじゃないか?と思ってしまって混乱。最初のgetPriceのところで別のスレッドで実行されるようになってるから、そのままそのスレッドでやってしまえば・・・と思ったんだけど。thenComposeする利点ってなんだろう?もうちょっと考えてみる。サンプルコード無視して言うけど、thenComposeの使いどころのひとつは、すでにCompletableFutureを返すAPIがあって、それと組み合わせるときかなー、と思いました。結局thenComposeの使いどころが腑に落ちてない感じする。生やしたくて生やすんじゃなくて、生やさざるを得ない状況用と思ってるー。いうときに生やさざるを得ない状況になるのかなー?と思った。...thenComposeで生やしといて、別のことをやった後に結果を受け取るのかな。生やさざるを得ない状況は、朝にリプした通り、すでに存在するAPIがCompletableFutureを返すようになっていて、そのAPIを利用する、といったときかな。そのようなAPIを使いたいとして、逆にthenComposeを使わず同じことが簡単に実現できるか?を考えると良いかも。ブログちゃんと読んだー。thenApply・thenComposeとスレッドは関係なくて、非同期で実行したいならthenApplyAsyncが使える。その上で、ブログに書かれたサンプルコードを読んでみたけど確かにthenComposeする必要はなさそうに思う。いうAPIがあるんだよ、って見せたいならともかく、それ以外の理由はちょっと思い浮かばないなー。サンプルコード変な気がしますね。Javaのウェブアプリはコンテナがスレッド管理しているので、Executorを渡すxxxAsyncメソッドを使わないといけないですねー。2016年6月8日そうかー。08:41CompletableFutureを勉強中。thenApplyとthenComposeで混乱中。思考のリファクタリングを読み終わった。何回もいったりきたりしながら読んだ。(1)はてなブログをはじめよう!bufferingsさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。