jdk10中引入了var来支持局部变量的类型推断,var不是关键字,且只能用于局部变量;
var不能用于字段、方法参数、构造方法参数、方法返回值,也不能用于catch参数,也不能用作类名接口名;
var可以用于局部变量,也可以用for循环和增强for循环里,因为var不是关键字,变量名使用var也是可以的;另外当一个var变量类型推断后就不能换其他的类型;
demo:
package test;
import java.util.ArrayList;
import org.junit.jupiter.api.Test;
class Jtest {
@Test
void test() {
var var = 1000;
// var = "aaaaa"; //Type mismatch: cannot convert from String to int
System.out.println(var);
for (var i = 1; i < 5; i++) {
System.out.println(i);
}
var s = new ArrayList<String>();
s.add("hello");
s.add("world");
for (var c : s) {
System.out.println(c);
}
}
}
运行结果: