【问题标题】:Use var in field declaration在字段声明中使用 var
【发布时间】:2019-02-13 03:45:26
【问题描述】:

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

var s = "cool";

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

class Container {
  final var s = "cool"; // does not compile tmk
}

据我所知,好像不是。

【问题讨论】:

  • 从 Java 9 开始 ...不,var 是在 Java-10 中引入的

标签: java local-variables java-10


【解决方案1】:

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

没有。

根据JEP 286: Local-Variable Type Inference

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

【讨论】:

    【解决方案2】:

    不,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 ;
    

    【讨论】:

      猜你喜欢
      • 2011-12-12
      • 2012-04-29
      • 2014-04-25
      • 1970-01-01
      • 1970-01-01
      • 2010-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多