61得票7回答
使用getter方法的 'public static final' 或 'private static final'?

在Java中,通常建议将变量保持私有以实现更好的封装,但是对于静态常量呢?下面这段代码:public static final int FOO = 5; 以下代码的结果与此相同:private static final int FOO = 5; ... public static getFoo...

60得票2回答
Java for循环中的"final int i"是如何工作的?

我很惊讶地发现以下Java代码片段编译并运行:for(final int i : listOfNumbers) { System.out.println(i); } 其中listOfNumbers是一个整数数组。 我以为final声明只会被赋值一次。那么编译器是创建一个Intege...

60得票3回答
在TypeScript中是否有类似于"sealed"或"final"的等效功能?

我正在尝试在一个超类中实现一个方法,这个方法应该可以在子类中使用,但不能被修改。考虑以下代码:export abstract class BaseClass { universalBehavior(): void { doStuff(); // Do some univ...

59得票2回答
C#中与Java中的public final static相对应的是什么?

在Java中我可以这样写:public final static MyClass foo = new MyClass("foo"); 在C#中有没有相应的东西?

59得票12回答
在 try 块中,如果赋值是最后一项操作,那么一个 final 变量能否在 catch 中被重新赋值?

我相当确信这里final int i; try { i = calculateIndex(); } catch (Exception e) { i = 1; } i如果达到 catch 块,就不可能已经被分配。但是 Java 编译器不同意,并声称 最终的局部变量 i 可能已经被赋值。 我是否还...

57得票1回答
为什么要将函数参数声明为final?

我目前正在学习Sams出版的《24小时内自学Android应用开发》这本书。我对Java和Android都比较陌生。我在ActionScript 3方面有很扎实的基础,由于与Java有足够相似之处,因此理解Java语言本身并不难,但是我仍然对书本中一些代码示例的原理有疑问。例如,下面就是第9个...

57得票12回答
为什么在Java中会将局部变量和方法参数标记为“final”?

在Java中,你可以使用final关键字来修饰局部变量和方法参数。public static void foo(final int x) { final String qwerty = "bar"; } 这样做会导致在方法体中无法重新分配x和qwerty。这种做法推动您的代码朝不可变性的...

57得票3回答
C#中的静态方法可以被重写吗?

有人告诉我static方法会被隐式地声明为final,因此无法被覆盖。这是真的吗? 有人能给出一个更好的静态方法重写的例子吗? 如果静态方法只是类方法,那么拥有它们的真正用途是什么?

55得票1回答
C++中的final关键字是否用于优化?

class A { public: virtual void f() = 0; }; class B : public A { public: void f() final override { }; }; int main() { B* b = new B(); ...

55得票2回答
Java final修饰符

我被告知我误解了`final`的效果。 `final`关键字有哪些效果? 这是我所知道的简短概述: Java中的`final`修饰符(也称为聚合关系) 原始变量:仅可设置一次。(节省内存和性能收益) 对象变量:可以修改,`final`应用于对象引用。 字段:仅可设置一次。 方法:无法被覆...