|
1
1
我不知道这是否有用,但在Java中,需要使局部变量成为final,以便能够在内部类中使用它们(因为Java没有真正的闭包,而是复制捕获的作用域,而这个作用域必须是不可变的):
此外,您还可以将字段和变量设为final,以防止意外地重新分配它们(编译器和运行时也可以使用此信息进行性能优化)。 当然,这两个例子实际上都不是关于数学意义上的常量(Java中的最终变量可以根据变量输入分配给计算表达式)。 |
|
|
2
1
除了访问匿名类中的变量(如Thilo所说)之外的另一个原因是,如果您想要一个不能更改赋值的对象,但它保持当前对象的某些状态,因此您不能在该类的多个实例之间共享它。 |
|
|
3
1
C#有这样的概念 readonly fields i、 e.只能在构造函数中分配,不能在任何其他方法中更改的字段。它们类似于类的特定实例(在其构造函数之外)的常量,而不是类本身的常量。 |