2016-01-01 23 views
8

Java 8のオプションが不変であるように設計された理由を理解したいと思います。スレッドセーフなのですか?Javaオプションは変更できないのはなぜですか?

+4

多くのものは通常、パフォーマンスのために、不変です。 –

+4

不変性は、スレッドの安全性のような多くの利点、および全体的なバグの危険性が低いため、近年多くの人気を集めています。また、Java 8が採用するはずの関数型プログラミングのパラダイムと互換性があります。 – SpiderPig

+2

@ElliottFrisch性能上の理由から、オプションは不変ではありませんが、不変性は設計の中核を成すものです。結局のところ、参照の価値を表しています。 https://docs.oracle.com/javase/8/docs/api/java/lang/doc-files/ValueBased.html – pvg

答えて

10

オプションは、物事を渡すためのものです。誰かに何かを与えて内容を変更した場合、彼らは非常に驚くばかりであり、良い方法ではありません。

+0

これについてもっと詳しく知り、何らかの目的で使用されているOptionalsを(明白な)自由に使用できるにもかかわらず、主にメソッドの戻り値のラッパーとして設計されています。答えは設計意図の点で最も正しいと思われます。 –

関連する問題