为什么 Java Optionals 是不可变的?

2022-09-03 18:24:39

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


答案 1

可选选项用于传递内容。如果你把东西给某人,然后改变它的内容,他们会非常惊讶,而且不是以一种好的方式。


答案 2

Optional 被认为是一个值对象,它应该是不可变的,以帮助降低它们让你在凌晨 3 点追踪 Bug 的能力。您可以在此处阅读有关该主题的更多信息:

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

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


推荐