使用final关键字声明List字段

如果我在一个类中有以下声明,其中Synapse是抽象类型:

private final List<Synapse> synapses;

是否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();

以上是 使用final关键字声明List字段 的全部内容, 来源链接: utcz.com/qa/431204.html

回到顶部