在字段声明中使用var

时间:2019-02-13 03:45:26

标签: java local-variables java-10

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

var s = "cool";

有什么方法可以在声明字段时使用类似的构造?

class Container {
  final var s = "cool"; // does not compile tmk
}
从我的判断来看,

看起来并不像。

2 个答案:

答案 0 :(得分:3)

  

有什么方法可以在声明字段时使用类似的构造?

不。

根据JEP 286: Local-Variable Type Inference

  

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

答案 1 :(得分:3)

否,there is not

  

var不是关键字,而是具有特殊含义的标识符   作为局部变量声明的类型(第14.4,第14.14.1,   §14.14.2,§14.20.3)。

var仅可在local variable declaration statements中使用以下语法

LocalVariableDeclarationStatement:
    LocalVariableDeclaration ;
LocalVariableDeclaration:
    {VariableModifier} LocalVariableType VariableDeclaratorList
LocalVariableType:
    UnannType 
    var

Field declarations不包含允许使用var特殊标识符的语法:

FieldDeclaration:
    {FieldModifier} UnannType VariableDeclaratorList ;