如果我在一个类中有以下语句,其中 Synapse
是一个抽象类型:
private final List<Synapse> synapses;
Does final
allow me to still be able to change the state of the Synapse
objects in the List
, but prevent me from adding new Synapse
对象列表?如果我错了,你能解释一下 final
正在做什么以及我应该在什么时候使用关键字 final
代替。
原文由 letter Q 发布,翻译遵循 CC BY-SA 4.0 许可协议
不,final 关键字不会使列表或其内容不可变。如果你想要一个不可变的列表,你应该使用:
final 关键字的作用是阻止您为“synapses”变量分配新值。也就是说,你不能写:
但是,您可以这样写:
本质上,您仍然可以更改、添加和删除列表的内容,但不能创建分配给变量 synapses 的新列表。