使用最终关键字声明 List 字段
如果我在一个类中有以下语句,其中是抽象类型:Synapse
private final List<Synapse> synapses;
是否允许我仍然能够更改 中对象的状态,但阻止我向列表中添加新对象?如果我错了,你能解释一下我在做什么,以及我什么时候应该使用这个关键字。final
Synapse
List
Synapse
final
final
如果我在一个类中有以下语句,其中是抽象类型:Synapse
private final List<Synapse> synapses;
是否允许我仍然能够更改 中对象的状态,但阻止我向列表中添加新对象?如果我错了,你能解释一下我在做什么,以及我什么时候应该使用这个关键字。final
Synapse
List
Synapse
final
final
不可以,最终关键字不会使列表或其内容不可变。如果你想要一个不可变的列表,你应该使用:
List<Synapse> unmodifiableList = Collections.unmodifiableList(synapses);
final 关键字的作用是阻止您将新值分配给“synapses”变量。也就是说,你不能写:
final List<Synapse> synapses = createList();
synapses = createNewList();
但是,您可以编写:
List<Synapse> synapses = createList();
synapses = createNewList();
在 essense 中,您仍然可以更改、添加和删除列表的内容,但不能创建分配给变量突触的新列表。