Java 10中引入的局部变量类型推断是一项新特性,它通过使用保留类型var
来实现。具体来说,你可以在声明局部变量时,通过使用var
关键字让编译器自动推断出变量的类型。例如,你可以使用 var javastack = "javastack";
来直接定义一个字符串类型的局部变量,而不需要在左边明确指定具体的类型。
此功能是作为JEP:286(JDK增强提案)的一部分提出的,旨在增强Java语言,使得代码书写更加简洁、易读。然而需要注意的是,由于var
只是一个保留类型而不是关键字,因此你仍然可以像 int var = 10;
这样的方式来命名你的变量和函数。此外,虽然Java 10只引入了var
,但并没有引入Scala和Kotlin中用于声明不可变变量的val
关键字,所以在需要声明不可变变量时,还需要使用final var
这种语法。
这个新特性有一些使用范围和限制。首先,它只能用在局部变量中,包括普通局部变量声明、for和while语句的声明部分的变量声明,以及增强型for循环中的循环变量声明。其次,从编译的角度来说,只有当右边的表达式不会造成类型模糊时,才能由编译器自动推断出左边的类型。