文章

局部变量的类型推断(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 进行授权