Java 8のオプションが不変であるように設計された理由を理解したいと思います。スレッドセーフなのですか?Javaオプションは変更できないのはなぜですか?
8
A
答えて
10
オプションは、物事を渡すためのものです。誰かに何かを与えて内容を変更した場合、彼らは非常に驚くばかりであり、良い方法ではありません。
+0
これについてもっと詳しく知り、何らかの目的で使用されているOptionalsを(明白な)自由に使用できるにもかかわらず、主にメソッドの戻り値のラッパーとして設計されています。答えは設計意図の点で最も正しいと思われます。 –
6
オプションは値オブジェクトと見なされ、午前3時にバグを追跡する能力を低下させるためには変更できません。あなたはトピックの詳細ビットのためにここで読むことができます:Javaで
関連する問題
- 1. インデックス値を変更できないのはなぜですか?
- 2. 「これ」を変更できないのはなぜですか?
- 3. ディレクトリを変更できないのはなぜですか?
- 4. ViewControllerを変更できないのはなぜですか?
- 5. SyntaxNode.ReplaceNodeがSyntaxTreeオプションを変更するのはなぜですか?
- 6. ELFエントリポイント0x8048000が "ld -e"オプションで変更できないのはなぜですか?
- 7. JLabelで変数を変更できないのはなぜですか?
- 8. kivyアニメーションで変数を変更できないのはなぜですか?
- 9. なぜローカルconst変数をポインタキャストで変更できますか?Cでグローバルconst変数を変更できないのはなぜですか?
- 10. なぜpythonでディレクトリを変更できないのですか?
- 11. ImageViewのサイズをsetLayoutParamsで変更できないのはなぜですか?
- 12. レールでDateTimeのオフセットを変更できないのはなぜですか?
- 13. rbenvでルビーのバージョンを変更できないのはなぜですか?
- 14. フォント名が変更されないのはなぜですか? (Java FX)
- 15. なぜSO_RCVBUFの値を変更できないのですか?
- 16. BitmapImageソースを一度しか変更できないのはなぜですか?
- 17. Javaコンストラクタを同期できないのはなぜですか?
- 18. ブートストラップナビバーでアクティブ状態を変更できないのはなぜですか?
- 19. PHPで入力ファイル名を変更できないのはなぜですか?
- 20. アップグレードで配置制約を変更できないのはなぜですか?
- 21. javafxでprimaryStage.initStyle()を変更できないのはなぜですか?
- 22. UIButtonテキストをドット構文で変更できないのはなぜですか?
- 23. RoundTripでリクエストを変更しないのはなぜですか?
- 24. なぜ文字セットを変更できないのですか?
- 25. なぜ結果オブジェクトを変更できないのですか
- 26. 私のUILabelのフレームを変更できないのはなぜですか?
- 27. レポートのデフォルトのフィルタセットを変更できないのはなぜですか?
- 28. なぜ私はUINavigationControllerのバックボタンのフォントを変更できないのですか?
- 29. htmlのangleプロパティの値を変更できないのはなぜですか?
- 30. numpyの配列を変更できないのはなぜですか?
多くのものは通常、パフォーマンスのために、不変です。 –
不変性は、スレッドの安全性のような多くの利点、および全体的なバグの危険性が低いため、近年多くの人気を集めています。また、Java 8が採用するはずの関数型プログラミングのパラダイムと互換性があります。 – SpiderPig
@ElliottFrisch性能上の理由から、オプションは不変ではありませんが、不変性は設計の中核を成すものです。結局のところ、参照の価値を表しています。 https://docs.oracle.com/javase/8/docs/api/java/lang/doc-files/ValueBased.html – pvg