局部变量的类型推断(var)
局部变量的类型推断(var)
var 在 Java 10 引入,是“局部变量类型推断”,不是动态类型。
1. 基本用法
1
2
3
4
5
var name = "java"; // 推断为 String
var list = new ArrayList<String>();
for (var item : list) {
System.out.println(item);
}
2. 关键限制
- 只能用于局部变量。
- 必须在声明时初始化(
var a;不合法)。 - 不能用于类成员变量。
- 不能直接用
null初始化。
3. 与 Lambda 的关系
Java 11 允许在 Lambda 参数中使用 var,常用于配合注解:
1
Consumer<String> c = (@Nonnull var s) -> System.out.println(s.toUpperCase());
4. 使用建议
- 右值类型非常明显时使用
var。 - 业务语义不清晰时保留显式类型。
- 公共 API、核心模型代码中谨慎使用,优先可读性。
相关阅读
本文由作者按照 CC BY 4.0 进行授权