Java 为什么可以';方法的局部变量是否声明为最终变量?

Java 为什么可以';方法的局部变量是否声明为最终变量?,java,scope,final,local-variables,Java,Scope,Final,Local Variables,我想知道为什么方法的局部变量不能声明为final。 有什么具体原因吗 这是否意味着Java中没有本地常量?它们可以声明为final。您的实际问题在其他地方。来自: 变量可以声明为最终变量。最后一个变量只能指定一次。如果将最终变量赋值给,则为编译时错误,除非在赋值之前明确未赋值(§16) 换句话说,这是完全合法的。此外,尽可能多地对局部变量使用final 一致地使用final和局部变量(适当时)也很有用。[…]合理的方法是,仅当方法中至少有一个非最终局部变量时,才对局部变量使用最终变量;这有助于快

我想知道为什么方法的局部变量不能声明为final。 有什么具体原因吗


这是否意味着Java中没有本地常量?

它们可以声明为final。您的实际问题在其他地方。

来自:

变量可以声明为最终变量。最后一个变量只能指定一次。如果将最终变量赋值给,则为编译时错误,除非在赋值之前明确未赋值(§16)

换句话说,这是完全合法的。此外,尽可能多地对局部变量使用
final

一致地使用final和局部变量(适当时)也很有用。[…]合理的方法是,仅当方法中至少有一个非最终局部变量时,才对局部变量使用最终变量;这有助于快速区分非最终局部变量与其他变量


谁说我们不能。我们可以申报。你可能把静态和静态混淆了,静态不能用在方法中。

愚蠢的错误!可能您没有提到引用变量,eclipse会抱怨“token“final”上的语法错误,类型无效”。 示例
final Pojo=new Pojo()final Pojo Pojo=new Pojo(),则代码>缺少引用变量,但它可以正常工作

我相信当你们在这里提问时,那个时候你们还并没有意识到那个愚蠢的错误。

请引用一个参考或给出示例代码(和编译器,有任何编译错误)。对于类/实例,你们应该仔细考虑使用final,但对于局部变量(若本地/匿名类不能访问),这更像是品味的问题。