当前位置: 首页 > 知识库问答 >
问题:

用final关键字声明列表字段

燕琨
2023-03-14

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

private final List<Synapse> synapses;

最终是否允许我仍然能够更改列表中Synapse对象的状态,但阻止我向列表中添加新的Synapse对象?如果我错了,请您解释一下final正在做什么,以及我应该在什么时候使用关键字final。

共有3个答案

西门京
2023-03-14

您仍然可以更改、添加和删除列表的内容,但不能创建分配给变量的新列表。

漆雕洋
2023-03-14

最终可防止您在分配突触一次后重新分配它-您仍然可以像往常一样添加/删除元素。您可以在此处阅读有关最终关键字的更多信息。

温峻熙
2023-03-14

不,最后一个关键字不会使列表或其内容不变。如果需要不可变列表,则应使用:

List<Synapse> unmodifiableList = Collections.unmodifiableList(synapses);

最后一个关键字的作用是阻止您为“synapses”变量指定新值。一、 例如,你不能写:

final List<Synapse> synapses = createList();
synapses = createNewList();

但是,您可以这样写:

List<Synapse> synapses = createList();
synapses = createNewList();

在Essene中,您仍然可以更改、添加和删除列表的内容,但无法创建分配给变量Synapse的新列表。

 类似资料:
  • 问题内容: 如果我在一个类中有以下声明,其中是抽象类型: 是否能让我仍然能够更改中的对象的状态,但阻止我将新对象添加到列表中?如果我写错了,请您解释一下正在做什么以及何时应该使用关键字。 问题答案: 不,final关键字不会使列表或其内容不可变。如果您想要一个不可变的列表,则应使用: final关键字的作用是防止您为’synapses’变量分配新值。即,您不能写: 但是,您可以编写:

  • 问题内容: 您使用关键字还是引发一些验证运行时异常?它给您带来什么好处,或者为什么您认为不值得使用呢? 问题答案: 如果条件为假,则声明将抛出运行时错误(AssertionError)。断言为您提供了一种简化的方式来记录,检查和强制执行代码的正确性标准。好处是用于定义和操纵这些正确性条件的语言级挂钩。如果您希望启用或禁用它们(存在一些关于是否是个好主意的争论),则可以从JVM命令行中启用。下面的一

  • 问题内容: 我正在编写一个程序,该程序会对python进行一些代码生成,并且如果它是python关键字,则需要以不同的方式对待字符串。打印python关键字和一些其他内容,但是我想知道是否存在一种pythonic的方法来获取包含这些字符串的实际可迭代对象? 问题答案: 您最好使用关键字模块

  • 本文向大家介绍C# 委托声明的关键字是__?相关面试题,主要包含被问及C# 委托声明的关键字是__?时的应答技巧和注意事项,需要的朋友参考一下 答:delegate.  

  • 问题内容: 如果声明变量而不使用“ var”,则变量始终变为GLOBAL。 在函数内部声明全局变量是否有用?我可以想象在某个事件处理程序中声明一些全局变量,但这有什么用呢?更好地使用RAM? 问题答案: 不,没有RAM好处或类似的好处。 w3schools谈论的是我所说的“内隐全球性恐怖” 。考虑以下功能: 看起来很简单,但是由于线路上的错字,它返回,而不是。并创建一个带有输入错误名称的全局变量:

  • 到目前为止,我们还没有讨论任何关联数据结构,即可以将特定值(或多个值)与密钥相关联的数据结构。 不同的语言使用不同的名称来调用这些功能,如字典,散列,关联数组等。 在Elixir中,我们有两个主要的关联数据结构:关键字列表和映射。 在本章中,我们将重点关注关键字列表。 在许多函数式编程语言中,通常使用2项元组的列表作为关联数据结构的表示。 在Elixir中,当我们有一个元组列表并且元组的第一项(即