我找不到final
与Python 等效的Java文档,有这样的事情吗?
我正在创建一个对象的快照(用于在任何失败的情况下用于还原);一旦分配了此备份变量,就不应对其进行修改-Python中类似final的功能将非常有用。
在Java中拥有一个变量final
基本上意味着您一旦分配了变量,就不能重新分配该变量以指向另一个对象。实际上,这并不意味着不能修改该对象。例如,以下Java代码可以很好地运行:
public final List<String> messages = new LinkedList<String>();
public void addMessage()
{
messages.add("Hello World!"); // this mutates the messages list
}
但是以下代码甚至无法编译:
public final List<String> messages = new LinkedList<String>();
public void changeMessages()
{
messages = new ArrayList<String>(); // can't change a final variable
}
因此,您的问题是关于final
Python 是否存在。它不是。
但是,Python确实具有不可变的数据结构。例如,虽然您可以更改list
,但不能更改tuple
。您可以变异a,set
但不能变异frozenset
等。
我的建议是,不要担心在语言级别强制执行非突变,而只是专注于确保您没有编写任何在分配了这些对象后对它们进行突变的代码。
我正在Android上进行继承领域的培训,我想知道为什么name和color变量的定义来自最终的关键字--当我移除这个关键字时,没有任何用处。而且当我得到这个关键字时,没有错误或意外--请告诉我使用final的原因是什么 mainactivity.java animal.java cat.java
问题内容: 在Java中,要声明一个常量,您可以执行以下操作: Kotlin中的等效物是什么? 问题答案: 根据Kotlin 文档,这是等效的: 用法: 这也是静态的final属性(带有getter的字段): 最后这是静态的final字段:
final是java中的访问修饰符还是非访问修饰符? Thread类公共最终无效setName(字符串名称)的setName()方法真的是最终的吗?如果是,是否意味着一旦线程名称更改,以后就不能更改,因为最终关键字...? 或者final不是方法setName()的一部分? 请给我正确的答案。。
问题内容: 我是Python的长期用户,并且非常喜欢使用字典的方式。它们非常直观且易于使用。是否有与python字典等效的Java?我听说有人在使用哈希图和哈希表。有人可以解释使用哈希表和哈希图与python字典的异同吗? 问题答案: Python的类是Python文档非正式地称为“ 映射类型 ”的实现。在内部,使用哈希表实现。 Java的类是接口的实现。在内部,使用哈希表实现。 语法上有一些细微
问题内容: 在尝试做一些尝试时,我遇到了一个在本页中描述的问题。 为什么可以使用这种功能?我不知道为什么仅通过覆盖方法就可以将最终参数设置为非最终参数。为什么在方法签名中忽略了final关键字?以及如何让子类在其方法中使用最终变量? 问题答案: Java通过值将参数传递给方法。 因此,对参数的任何更改都不能传播回调用方。由此可见,无论是否声明参数,对调用者而言绝对没有区别。因此,它是方法 实现 的
本文向大家介绍浅谈Java中的final关键字与C#中的const, readonly关键字,包括了浅谈Java中的final关键字与C#中的const, readonly关键字的使用技巧和注意事项,需要的朋友参考一下 在编程语言中都有某种方式,告知编译器一块数据是恒定不变的。有两个需求 1. 一个永不改变的编译器常量 2. 一个在运行时被初始化的值,而这个值不会被改变 在Java中,使用fina