152得票5回答
Java的`final`方法:它承诺了什么?

在Java类中,可以定义一个方法为final,以标记该方法不可被覆盖:public class Thingy { public Thingy() { ... } public int operationA() {...} /** this method does @re...

147得票6回答
如何在构造函数中初始化一个final类属性?

在Java中,您被允许这样做:class A { private final int x; public A() { x = 5; } } 在 Dart 中,我尝试了:class A { final int x; A(...

145得票16回答
Java中的String类为什么声明为final?

当我知道在Java中类java.lang.String被声明为final时,我一直在想这是为什么。当时我没有找到任何答案,但是这篇帖子:How to create a replica of String class in Java?让我想起了我的疑问。 确实,String提供了我所需的所有功...

144得票8回答
final static方法的行为

我一直在尝试使用static方法和修饰符,并遇到了奇怪的行为。 我们知道,静态方法不能被覆盖,因为它们与类而非实例相关联。 因此,如果我有下面的代码段,它可以编译通过。//Snippet 1 - Compiles fine public class A { static void ...

126得票4回答
通过反射在Java中获取类的public static final字段/属性的值

假设我有一个类:public class R { public static final int _1st = 0x334455; } 如何通过反射获取 "_1st" 的值?

120得票4回答
在Java中,将方法参数声明为final是否有性能原因?

在Java中,将方法参数声明为final是否有性能优化的目的? 例如:public void foo(int bar) { ... } 对比:public void foo(final int bar) { ... } 假设在foo()函数中,bar只会被读取,而不会被修改。

117得票11回答
将Java方法参数设置为final

final关键字对下面的代码有什么不同?在将参数声明为final时是否存在任何优势。public String changeTimezone( Timestamp stamp, Timezone fTz, Timezone toTz){ return .... } public ...

105得票7回答
为什么接口中的所有字段都隐式地是静态和不可变的?

我只是想了解为什么接口中定义的所有字段都是隐式的 static 和 final。将字段保持 static 的想法对我来说很有意义,因为您无法拥有接口的对象,但是它们为什么是 final(隐式)? 有人知道为什么Java设计者选择使接口中的字段具有 static 和 final 吗?

104得票2回答
为什么`private val`和`private final val`不同?

我曾经认为private val和private final val是一样的,直到我看到Scala参考手册4.1节: 常量定义的形式为final val x = e e是一个常量表达式(§6.24)。最终修饰符必须存在,不能给出类型注释。对常量值x的引用本身被视为常量表达式;在生成的代...

103得票2回答
有效终态 vs 终态 - 不同的行为

到目前为止,我认为 effectively final 和 final 或多或少是等价的,并且JLS在实际行为上会将它们视为相似甚至相同。然后我发现了这种人为制造的情况:final int a = 97; System.out.println(true ? a : 'c'); // outpu...