为什么Java Optionals不可变?

时间:2016-01-01 02:03:20

标签: java optional

我想了解为什么Java 8 Optionals被设计为不可变的。它只是为了线程安全吗?

2 个答案:

答案 0 :(得分:16)

可选项用于传递信息。如果你给别人一些东西,然后改变它的内容,他们会非常惊讶,而且不是很好。

答案 1 :(得分:6)

可选被认为是一个值对象,并且应该是不可变的,以帮助降低他们在3点凌晨追踪错误的能力。你可以在这里阅读更多关于这个主题的内容:

http://martinfowler.com/bliki/ValueObject.html

http://c2.com/cgi/wiki?ValueObjectsShouldBeImmutable