问题标签 [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.

0 投票
8 回答
5769 浏览

java - 如何在 Java 的递归算法中保持“完成的事情”计数?

我有一个递归算法,它逐个字符地遍历字符串,并对其进行解析以创建树状结构。我希望能够跟踪解析器当前所在的字符索引(对于错误消息以及其他任何内容),但我并不热衷于实现像元组这样的东西来处理多个返回的类型。

我尝试使用 Integer 类型,在方法外部声明并传递给递归方法,但因为它是最终的,递归调用增量在我返回时被“遗忘”。(因为Integer值的递增使得传值对象引用指向一个新对象)

有没有办法获得类似于不会污染我的代码的工作?

0 投票
6 回答
8630 浏览

java - 不可变类应该是最终的?

它在这篇文章中说:

因为它是不可变的,所以将其设为 final 是一个很好的理由。

我对此感到有些困惑......我知道从线程安全和简单的 POV 来看,不变性是一件好事,但似乎这些问题与可扩展性有些正交。那么,为什么不可变性是使类成为 final 的一个很好的理由呢?

0 投票
15 回答
56864 浏览

java - 什么时候应该使用 final 作为方法参数和局部变量?

我发现了一些建议尽可能多地使用的参考资料(例如),我想知道这有多重要。final这主要是在方法参数和局部变量的上下文中,而不是最终方法或类。对于常量,这显然是有道理的。

一方面,编译器可以做一些优化,让程序员的意图更加清晰。另一方面,它增加了冗长,优化可能是微不足道的。

这是我应该努力记住的事情吗?

0 投票
4 回答
888 浏览

java - 有没有办法在 Java 中实现代数类型?

在 Java 中,是否有可能强制一个类具有一组特定的子类而没有其他子类?例如:

我可以以某种方式强制不能创建 A 的其他子类吗?

0 投票
6 回答
22167 浏览

java - 为什么 Java 中的 final 常量可以被覆盖?

考虑 Java 中的以下接口:

以及以下课程:

为什么类 A 有可能出现并覆盖接口 I 的最终常量?

自己试试:

0 投票
11 回答
65435 浏览

java - 在 Java 中禁止继承的充分理由?

在 Java 中禁止继承的充分理由是什么,例如使用最终类或使用单个私有无参数构造函数的类?使方法成为最终方法的充分理由是什么?

0 投票
5 回答
28455 浏览

java - 在 Java 中声明方法参数 final 是否有任何性能原因?

在 Java 中声明方法参数 final 是否有任何性能原因?

如:

相对:

假设barfoo().

0 投票
15 回答
50330 浏览

java - 在 Java 中对变量使用 final 会改善垃圾收集吗?

今天我和我的同事讨论了final在Java中使用关键字来改进垃圾收集。

例如,如果您编写如下方法:

在方法中声明变量final将有助于垃圾收集在方法退出后从方法中未使用的变量中清理内存。

这是真的?

0 投票
12 回答
113217 浏览

java - 为什么在 Java 中将局部变量和方法参数标记为“final”?

在 Java 中,您可以使用 final 关键字限定局部变量和方法参数。

这样做会导致无法在方法主体中重新分配 x 和 qwerty。

这种做法将您的代码推向不变性的方向,这通常被认为是一个优点。但是,它也倾向于使代码混乱,到处都出现“final”。您对 Java 中局部变量和方法参数的 final 关键字有何看法?

0 投票
4 回答
765 浏览

java - 如何在Java中获得等效的c ++常量指针?

当我将不可变类型对象(String, Integer,..) 作为 final 传递给方法时,我可以实现 C++ 常量指针的字符。但是我怎样才能在可变对象中强制执行这种行为呢?

我想要的只是防止 someMethod 修改 someObject 的状态而不对 someType 进行任何更改。这可能吗?