Java 10中的“var”究竟是什么类型的标记?
在上一期 Heinz Kabutz 的时事通讯 #255 Java 10: Inferred Local Variables 中,它表明这不是 Java 10 中的保留字,因为您也可以用作标识符:var
var
public class Java10 {
var var = 42; // <-- this works
}
但是,您不能使用 作为标识符,如 中所示,因为 是一个保留字。assert
var assert = 2
assert
正如在链接的时事通讯中所说,这不是一个保留字的事实是好消息,因为这允许以前版本的Java代码用作标识符,在Java 10中没有问题地编译。var
var
那么,那是什么呢?它既不是该语言的显式类型,也不是该语言的保留字,因此允许它成为标识符,但是当用于在Java 10中声明局部变量时,它确实具有特殊含义。在局部变量声明的上下文中,我们究竟如何称呼它?var
此外,除了支持向后兼容性(通过允许包含作为标识符的旧代码进行编译)之外,不作为保留字还有其他好处吗?var
var