问题标签 [final]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Collections.unmodifiableSet() 在 Java 中做了什么?
我可以看到它Collections.unmodifiableSet
返回给定集合的不可修改视图,但我不明白为什么我们不能只使用final
修饰符来完成此操作。
在我的理解中,final
声明一个常量:不能修改的东西。所以,如果一个集合被声明为一个常量,那么它就不能被修改:不能从集合中删除任何东西,也不能添加任何东西。
为什么我们需要Collections.unmodifiableSet
?
python - 如何防止函数在python中被覆盖
有没有办法使类函数不可覆盖?类似于 java 的final
关键字。即,任何重写类都不能重写该方法。
java - 为什么可以修改最终对象?
我在我正在处理的代码库中遇到了以下代码:
INSTANCE
被声明为final
。为什么可以添加对象INSTANCE
?那不应该使最终的使用无效。(它没有)。
我假设答案必须与指针和内存有关,但我想确定。
scala - Scala 和 Java 内存模型
Java 内存模型(从 1.5 开始)将final
字段与非final
字段区别对待。特别是,如果this
在构造过程中引用没有转义,final
那么即使对象通过数据竞争对其他线程可用,对构造函数中字段的写入也保证在其他线程上可见。(不保证对非字段的写入final
可见,因此如果您不正确地发布它们,另一个线程可能会看到它们处于部分构造的状态。)
是否有任何关于 Scala 编译器如何/是否为类创建final
(而不是非final
)支持字段的文档?我查看了语言规范并搜索了网络,但找不到任何明确的答案。(相比之下,@scala.volatile
注释被记录为将字段标记为volatile
)
java - 为什么我的内部类看到一个非静态变量?
早些时候,当内部匿名类没有看到“外部”类的字段时,我遇到了问题。我需要制作一个最终变量以使其对内部类可见。现在我有一个相反的情况。在“外部”类“ClientListener”中,我使用内部类“Thread”和“Thread”类,我有“run”方法,并且确实从“outer”类中看到了“earPort”!为什么?
java - 是否有任何理由使所有字段和变量成为最终的?
在我当前的项目中,我注意到方法中的所有类字段和变量都尽可能使用 final 修饰符声明。
就像这里:
有什么理由这样做吗?
ps 据我所知,项目不应该是多线程的(至少我什么都没听说过)。
java - Thread 的 run() 方法中的最终枚举
为什么 Elvis elvis 定义必须是最终的才能在 Thread run() 方法中使用?
java - 在Java中发生异常时为最终变量分配默认值
为什么Java不让我在设置try块中的值后为catch块中的final变量赋值,即使在发生异常的情况下不可能写入最终值。
这是一个演示问题的示例:
这个问题并不难解决,但我想了解为什么编译器不接受这个。
提前感谢您的任何投入!
java - Java:startingPath 作为“公共静态最终”异常
[已更新,对更改感到抱歉,但现在是真正的问题] 我不能在其中包含 try-catch-loop 以用于方法 getCanonicalPath() 的异常。我试图用方法更早地解决问题,然后在那里声明值。问题是它是最终的,我无法更改它。那么如何将startingPath设置为“public static final”。