我想知道为什么不能将方法本地的变量声明为最终变量。有什么具体原因吗?
这是否意味着Java中没有局部常量?
它们可以被宣布为最终的。您的实际问题出在其他地方。
变量可以声明为 final。最终变量只能分配一次。如果最终变量被分配给它,这是一个编译时错误,除非它在分配之前立即被明确地未分配(第 16 节)。
换句话说,这是完全合法的。此外,尽可能多地使用局部变量被认为是最佳实践。final
始终将 final 与局部变量一起使用(适当时)也很有用。[...] 一种合理的方法是仅当方法中至少有一个非最终局部变量时才将 final 用于局部变量;这有助于快速将非最终局部变量与其他局部变量区分开来。
谁说我们不能。我们可以声明。您可能对不能在方法中使用的 static 感到困惑。
愚蠢的错误!可能您错过了提及引用变量,并且 Eclipse 抱怨“令牌“final”上的语法错误,无效类型”。
如果我确定当您在 SO 提出问题时,您没有意识到那里的愚蠢错误,那么缺少参考变量的示例final Pojo = new Pojo();
虽然可以完美运行。final Pojo pojo = new Pojo();