为什么`var`不能用于可以推断其类型的非局部变量? [重复]

问题描述 投票:0回答:1
class ExampleClass { var a = 0; // Not Allowed static var b = 0; // Not Allowed void exampleMethod() { var c = 3; // Allowed } }
在以上示例中,ab都可以在编译时确定其类型。但是,var仅用于其类型可以推断的局部变量。我是否缺少设计原因,为什么会出现这种情况?

我看过这个question,它解释了var的用法和意图,但是其回答并未意识到上述限制的原因。

java var local-variables
1个回答
0
投票
一种表达方式是,它根本不是为它设计的。

尽管Java 10中引入了'var',但它具有局限性。

文档中明确指出何时可以使用'var',即仅在以下情况下使用:

    带有初始化程序的局部变量声明(即方法和初始化程序块)。
  • 索引增强了for循环。
  • 传统的for循环中的索引变量。
  • Try-with-resources变量。
  • 阅读文档here
  • © www.soinside.com 2019 - 2024. All rights reserved.