Java 10:类型推断局部变量var

时间:2021-09-20 16:47:55

Java 10将新增特性:类型推断的局部变量声明var。

java9以及之前的版本,声明一个局部变量需要显式声明它的类型。Java 10引入了新的变量声明关键词var,使用它不需要我们显式声明局部变量的类型,它会自动推断出局部变量的类型。

Java 9示例:

import java.util.*;

public class Java9 {
  public static void main(String... args) {
    for (String arg : args) {
      System.out.println(arg);
    }

    for (int i = 0; i < args.length; i++) {
      String arg = args[i];
      System.out.println(arg);
    }

    List<String> strings = new ArrayList<>();
    strings.add("hello");
    for (String string : strings) {
    }

    List<String> explicit = new ArrayList<>();

    String name = "Hello";
    name += " World";
    System.out.println("name = " + name);

    int var = 42; // <-- hmmm, wonder what will happen?
  }
}

Java 10 var示例

import java.util.*;

public class Java10 {
  public static void main(String... args) {
    for (var arg : args) {
      System.out.println(arg);
    }

    for (var i = 0; i < args.length; i++) {
      var arg = args[i];
      System.out.println(arg);
    }

    var strings = new ArrayList<String>();
    strings.add("hello");
    for (String string : strings) {
    }

    List<String> explicit = new ArrayList<>();

    var name = "Hello";
    name += " World";
    System.out.println("name = " + name);

    var var = 42; // <-- this works
  }
}

var并不是保留字,在示例里,var var = 42是有效的,这种做法主要是为了兼容旧的版本。