所以从Java 9开始,我们可以使用var声明局部变量:
var s = "cool";
有什么方法可以在声明字段时使用类似的构造?
class Container {
final var s = "cool"; // does not compile tmk
}
从我的判断来看,看起来并不像。
答案 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 ;