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