在字段声明中使用 var

3 java local-variables java-10

所以从 Java 9 开始,我们可以使用 var 来声明局部变量:

var s = "cool";
Run Code Online (Sandbox Code Playgroud)

有没有办法在声明字段时使用类似的构造?

class Container {
  final var s = "cool"; // does not compile tmk
}
Run Code Online (Sandbox Code Playgroud)

据我所知,似乎不像。

Jac*_* G. 6

有没有办法在声明字段时使用类似的构造?

不。

根据JEP 286:局部变量类型推断

这种处理将仅限于具有初始值设定项的局部变量、增强的 for 循环中的索引以及在传统 for 循环中声明的局部变量;它不适用于方法形式、构造函数形式、方法返回类型、字段、捕获形式或任何其他类型的变量声明。


Sav*_*ior 5

不,那里没有

\n\n
\n

var不是关键字,而是具有特殊含义的标识符\n 作为局部变量声明的类型 (\xc2\xa714.4, \xc2\xa714.14.1,\n \xc2\xa714.14.2, \xc2\xa714 .20.3)。

\n
\n\n

var只能用在局部变量声明语句中,语法如下

\n\n
LocalVariableDeclarationStatement:\n    LocalVariableDeclaration ;\nLocalVariableDeclaration:\n    {VariableModifier} LocalVariableType VariableDeclaratorList\nLocalVariableType:\n    UnannType \n    var\n
Run Code Online (Sandbox Code Playgroud)\n\n

字段声明不包含var允许使用特殊标识符的语法:

\n\n
FieldDeclaration:\n    {FieldModifier} UnannType VariableDeclaratorList ;\n
Run Code Online (Sandbox Code Playgroud)\n