Java中var用于局部变量类型推断,需初始化且仅限于局部变量;适用于类型明确的场景以提升简洁性,但不可用于字段、参数等,避免降低可读性。
Java在JDK 10中引入了var关键字,用于局部变量的类型推断。它能让代码更简洁,但仅限于局部变量声明且必须初始化。
var的基本用法
var允许你省略变量的显式类型,编译器会根据赋值自动推断类型:
- var name = "Hello"; // 推断为 String
- var age = 25; // 推断为 int
- var list = new ArrayList
(); // 推断为 ArrayList
这些写法等价于明确写出类型,但减少了重复代码,尤其在泛型较长时更清晰。
使用限制
var不是万能的,有以下约束:
- 只能
用于局部变量,不能用于字段、方法参数或返回类型
- 声明时必须初始化,否则无法推断类型
- 不能用于null初始化(如 var obj = null;)
- 不支持多变量声明(如 var a = 1, b = 2; 是错误的)
适用场景建议
合理使用var可提升可读性:
- 右边已清楚表明类型时,如 new 构造器调用
- 避免冗长的泛型声明,如 Map
> - 配合Stream使用,让链式操作更流畅
但过度使用可能降低可读性,比如 var result = someMethod(); 若方法返回类型不明显,建议保留显式类型。
基本上就这些。var简化了局部变量写法,关键是保持代码清晰,别为了简洁牺牲可读性。









