繁体   English   中英

为什么不能将方法局部变量声明为final?

[英]Why can't variables local to a method be declared final?

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

这是否意味着Java中没有局部常量?

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

根据Java规范§4.5.4

可以将变量声明为final 最终变量只能分配一次。 如果将最终变量赋值给了它,则是编译时错误,除非在赋值之前肯定没有将其赋值(第16节)。

换句话说,这是完全合法的。 此外,认为最佳做法是尽可能多地将final与局部变量一起使用。

始终将final与局部变量配合使用(如果适用)也很有用。 [...]一种合理的方法是仅在该方法中至少有一个非最终局部变量时才对局部变量使用final; 这可以快速将非最终局部变量与其他变量区分开。

谁说我们不能。 我们可以声明。 您可能对不能在方法中使用的静态方法感到困惑。

愚蠢的错误! 可能您没有提到参考变量,而日食则抱怨“令牌最终(final)上的语法错误,无效类型”。 final Pojo = new Pojo();示例final Pojo = new Pojo(); 如果final Pojo pojo = new Pojo();它缺少参考变量,但它完全可以正常工作 我敢肯定,到那时您在SO那里问问题时,您还没有意识到那里的那个愚蠢的错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM