在字段声明中使用var

问题描述 投票:2回答:2

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

var s = "cool";

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

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

从我能说的来看,它似乎不是这样。

java local-variables java-10
2个回答
3
投票

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

没有。

JEP 286: Local-Variable Type Inference说:

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


2
投票

ku zxsw指向。

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

var只能在语法中用于var

local variable declaration statements

LocalVariableDeclarationStatement: LocalVariableDeclaration ; LocalVariableDeclaration: {VariableModifier} LocalVariableType VariableDeclaratorList LocalVariableType: UnannType var 不包含允许使用Field declarations特殊标识符的语法:

var
© www.soinside.com 2019 - 2024. All rights reserved.