Jdk10局部变量类型推断var
-
Java是⼀种强类型, 许多流⾏的编程语⾔都已经⽀持局部变量类型推断,如js,Python,C++等
-
JDK10 可以使⽤var作为局部变量类型推断标识符
-
Local-Variable Type Inference(局部变量类型推断),顾名思义只能⽤做为局部变量
仅适⽤于局部变量,如 增强for循环的索引,传统for循环局部变量
不能使⽤于⽅法形参、构造函数形参、⽅法返回类型或任何其他类型的变量声明
标识符var不是关键字,⽽是⼀个保留类型名称,⽽且不⽀持类或接⼝叫var,也不符合命名规范
可以⽤jshell或者IDEA试验
- 使用idea试验时,需配置高于jdk10的版本
- 代码案例
public class Main {
public static void main(String[] args) throws Exception {
//根据推断为字符串
var strVar = "springboot";
System.out.println(strVar instanceof String);
//根据10L 推断long类型
var longVar = 10L;
//根据true推断 boolean类型
var flag = Boolean.valueOf("true");
System.out.println(flag instanceof Boolean);
//推断 ArrayList<String>
var listVar = new ArrayList<String>();
System.out.println(listVar instanceof ArrayList);
var streamVar = Stream.of("aa","bb","cc");
System.out.println(streamVar instanceof Stream);
if(flag){
System.out.println("这个是 flag 变量,值为true");
}
for(var i = 0; i<10;i++){
System.out.println(i);
}
try(var input = new FileInputStream("")){
}
}
}