今天在谷歌搜索一段代码时,我看到了一个问答博客,其中说我们可以在类的方法中声明一个局部变量为final。然而,作者不愿意解释这样做的必要性/好处。
喜欢
public class A
{
private void show()
{
final String s="checking";
}
}
我会寻求 Java 专家的帮助来教育我这方面的知识。在此先感谢您的支持和指导。
最好的问候!
最佳答案
除了其他答案之外,使变量 final
允许在类和接口(interface)的内联实现中使用该变量:
final String test = "test";
foo = new Foo() {
public void bar() {
System.out.println(test);
}
};
编辑:
如果您是初学者,可能还值得指出的是,变量 实际上是对实例 的引用。当你创建一个变量 final
时,你实际上是在创建引用常量,也就是说,final 变量在初始化后永远不能引用其他实例。这不会声明实际的引用实例 是否是常量。
例如,如果你说 final String[] foo = { "bar", baz"}
你可以做 foo[0] = "sheep "
即使 foo
是 final
。你不能做的是将 foo
变量引用到其他东西,比如 foo = new String[]...
或 foo = someOtherArray
。这与可变性 和不变性 有关,这些概念是有点类似于 final
,所以它们可能值得研究一下。
关于java - 局部变量在类的方法中成为最终变量——但为什么呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17931406/