答案 0 :(得分:1)
根据不可变对象的定义(由维基百科提供)“在面向对象和函数式编程中,不可变对象是一个对象,其状态在创建后无法修改。”
创建最终对象后,无法重新分配。如果没有最终的关键工作,您仍然可以在创建对象后更改它。
答案 1 :(得分:1)
反问题“为什么不最终?”。
final
表示对于原始类型,一旦分配了这个值就不能改变它,这足以使它们成为不可变的,
对于非原始类型,一旦分配了引用,就无法更改引用(第一步是Immutability),您需要执行更多操作,如您共享的链接中所述。
答案 2 :(得分:0)
如果没有字段final
,我们可以创建一个不可变的类/对象,如果有其他条件可用的话。
但我认为final
在处理并发和同步时很有用。
答案 3 :(得分:0)
链接文档的关键是此引用
并非所有记录为“不可变”的类都遵循这些规则....但是,此类策略需要复杂的分析,不适合初学者。
这是初学者的教程。告诉他们“让一切变得私密和最终”然后必须解释所有边缘情况,如何正确处理可变引用,并确保不让你的引用逃脱。