标签: java optional
我想了解为什么Java 8 Optionals被设计为不可变的。它只是为了线程安全吗?
答案 0 :(得分:16)
可选项用于传递信息。如果你给别人一些东西,然后改变它的内容,他们会非常惊讶,而且不是很好。
答案 1 :(得分:6)
可选被认为是一个值对象,并且应该是不可变的,以帮助降低他们在3点凌晨追踪错误的能力。你可以在这里阅读更多关于这个主题的内容:
http://martinfowler.com/bliki/ValueObject.html
http://c2.com/cgi/wiki?ValueObjectsShouldBeImmutable