APIを構築する際には、インターフェイスにコードを書くことをお勧めします。これは、CompletionStageを返すのが最善のアプローチのようです。しかし、私はCompletionStageを取得した後で常に.toCompletableFutureを呼び出すことに気付きました。この場合、推奨されるアプローチは何ですか?APIはCompletionStageまたはCompletableFutureを返す必要があります
2
A
答えて
2
CompletionStage
を使用するAPIは非ブロッキングのためのものです。したがって、呼び出し元が非ブロッキングの方法で動作しない場合は、.toCompletableFuture()
という呼び出しが必要です。 APIがノンブロッキングでない場合は、古い古いFuture
インターフェイスを返す必要があります。ホルガーは、なぜあなたはtoCompletableFuture
を呼ぶのですか、尋ね同様
+0
逆の観点からの質問も参照してください。https://stackoverflow.com/q/34930840/1531945 –
0
はhttps://stackoverflow.com/a/49158702/1113842
で私の返事を参照してください?
- 発信者に
complete
/cancel
に発信しますか?ほとんどのアプリケーションでは、ステージを完了するための独自のメカニズムが用意されています。したがって、これらのメソッドを公開する必要はありません。 - ブロック
get
を使用しますか?これは、非同期プログラミングでは避けるべきです。
回答が両方の質問に対して「いいえ」でない場合は、CompletionStage
を返す必要があります。
関連する問題
- 1. Symfony APIコントローラはレスポンスを返す必要があります
- 2. Azure apiが返す "puid 'または' altsecid 'または' oid 'が存在する必要があります。
- 3. Java FireとCompletionStage/CompletableFutureを忘れました
- 4. WebAPI GETはIDまたは値を返す必要があります
- 5. Falcorルータは外部APIから値を返す必要があります
- 6. array_walkはtrueまたはfalseを返します。代わりに変数を返す必要があります
- 7. APIまたはコンシューマがビューフラグを更新する必要がありますか?
- 8. REST APIサービス:BoundまたはIntentServiceである必要がありますか?
- 9. コバルト社はEME APIをアップグレードする必要があります
- 10. は$ getファクトリメソッドから値を返す必要があります
- 11. アクションクリエイターはアクションを返す必要がありますか?
- 12. 私はクリックのテキストを返す必要があります
- 13. ERROR: '::メインは、' 'INT' を返す必要があります
- 14. エラー: ':: main'は 'int'を返す必要があります
- 15. JavaScript関数は配列を返す必要があります
- 16. Angular2 Observable - 関数は値を返す必要があります
- 17. APIまたはWebサービスを作成する必要がありますか?
- 18. ジオコーディング - APIまたはデータベースを使用する必要がありますか?
- 19. REST APIまたはSQLデータベースを使用する必要がありますか?
- 20. WOT APIは理解を助ける必要があります。
- 21. は、mysqlから一行返す必要があります
- 22. API - フロントエンドまたはバックエンドアプリで集計する必要がありますか?
- 23. Javaでコードセレンを繰り返す必要はありません
- 24. Javaで修正されたcompareToメソッドは、intを返す必要があると言っていますが、1を返す必要があります。
- 25. ステートメントを繰り返す必要があります
- 26. サービスレイヤメソッドはインスタンスまたはIDを要求する必要がありますか?
- 27. APIを保護する必要はありますか?
- 28. Andrioid APIをダウンロードする必要はありますか?
- 29. 有効な反応要素またはnullを返す必要があります。反応-Reduxのは
- 30. RESFTful Web APIは、更新操作(Put)で変更されたエンティティを返す必要がありますか?
それは*なぜ* toCompletableFuture()を呼び出しているかによって決まります... – Holger
@Holgerあなたはそれについて詳述できますか?私たちはtoCompletableFutureを呼び出すので、その中でしか利用できないメソッドを呼び出すことができます。インターフェイスから具体的なインスタンスを得ることができるところで、混乱することはほとんどありません。彼らは密接に結びついており、インターフェースを持つという目的を破っています。 – Mayumi
さて、 'CompletionStage'は38のメソッドを定義し、' Future'インターフェースはさらに5つを定義します。残りの8つの「CompletableFuture」固有のメソッドが永久に(「常に」)見つかった場合、インターフェイスに対してコーディングすることは、実際にはあなたのためではありません。 – Holger