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