class ExampleClass {
var a = 0; // Not Allowed
static var b = 0; // Not Allowed
void exampleMethod() {
var c = 3; // Allowed
}
}
在以上示例中,a
和b
都可以在编译时确定其类型。但是,var
仅用于其类型可以推断的局部变量。我是否缺少设计原因,为什么会出现这种情况?我看过这个question,它解释了var
的用法和意图,但是其回答并未意识到上述限制的原因。
尽管Java 10中引入了'var',但它具有局限性。
文档中明确指出何时可以使用'var',即仅在以下情况下使用:
带有初始化程序的局部变量声明(即方法和初始化程序块)。
- 索引增强了for循环。
- 传统的for循环中的索引变量。
- Try-with-resources变量。