如果我在课堂上有以下声明Synapse
是一个抽象类型:
private final List<Synapse> synapses;
Does final
让我仍然能够改变的状态Synapse
中的对象List
,但阻止我添加新的Synapse
反对该清单?如果我错了,你能解释一下吗final
正在做什么以及何时应该使用关键字final
反而。
不,final 关键字不会使列表或其内容变得不可变。如果你想要一个不可变的列表,你应该使用:
List<Synapse> unmodifiableList = Collections.unmodifiableList(synapses);
Final 关键字的作用是阻止您为“synapses”变量分配新值。即,你不能写:
final List<Synapse> synapses = createList();
synapses = createNewList();
但是,您可以写:
List<Synapse> synapses = createList();
synapses = createNewList();
本质上,您仍然可以更改、添加和删除列表的内容,但无法创建分配给变量突触的新列表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)