局部变量在类的方法中做出最终 - 但为什么呢?

ani*_*ark 5 java

今天在搜索谷歌的某段代码时,我遇到了一个Q/A博客,据说我们可以在一个类的方法中声明一个局部变量为final.但是,提交人不愿意解释这样做的必要性/好处.

喜欢

public class A
{
 private void show()
 {
  final String s="checking";
 }
}
Run Code Online (Sandbox Code Playgroud)

我会寻求java专家的帮助来教育我这个.在此先感谢您的支持和指导.

最好的祝福!

Bor*_* B. 8

除了其他答案之外,创建变量还final可以在类和接口的内联实现中使用该变量:

final String test = "test";

foo = new Foo() {
        public void bar() {
            System.out.println(test);
        }
    };
Run Code Online (Sandbox Code Playgroud)

编辑:如果你是一个初学者,也可能是值得指出的是,该变量实际上是一个参考,以一个实例.当你创建一个变量时,final你实际上正在使引用常量,也就是说,最终变量在初始化之后永远不会引用其他实例.这并未声明实际引用的实例是否是常量.

例如,如果你说final String[] foo = { "bar", baz" }可以做,foo[0] = "sheep"即使foofinal.你不能做的是将foo变量引用到其他东西,比如in foo = new String[]...foo = someOtherArray.这与可变性不变性有关,这些概念有点类似final,所以它们可能值得一些调查.