Java10 本地变量类型推断

Java10 本地变量类型推断

JEP 286 − 本地变量类型推断

本地变量类型推断是从Java 10开始可用的语言中最明显的变化之一。它允许使用var来定义一个变量,而无需指定其类型。编译器根据提供的值推断变量的类型。此类型推断仅限于局部变量。

旧的声明局部变量的方式。

String name = "Welcome to tutorialspoint.com";

声明局部变量的新方法。

var name = "Welcome to tutorialspoint.com";

现在编译器通过检查提供的值,将name变量的类型推断为String类型。

值得注意的几点

  • 对于成员变量、方法参数和返回值,没有类型推断。

  • 局部变量在声明时应该被初始化,否则编译器将无法推断并抛出错误。

  • 局部变量的推断可以在循环语句的初始化块中使用。

  • 没有运行时开销。由于编译器根据提供的值推断类型,因此没有性能损失。

  • 没有动态类型更改。一旦推断出局部变量的类型,就不能更改。

  • 通过使用局部变量类型推断,可以减少复杂的样板代码。

Map<Integer, String> mapNames = new HashMap<>();

var mapNames1 = new HashMap<Integer, String>();

示例

以下程序展示了在JAVA 10中使用局部变量类型推断的示例。

import java.util.List;

public class Tester {
   public static void main(String[] args) {
      var names = List.of("Julie", "Robert", "Chris", "Joseph"); 
      for (var name : names) {
         System.out.println(name);
      }
      System.out.println("");
      for (var i = 0; i < names.size(); i++) {
         System.out.println(names.get(i));
      }
   }
}

输出

它将打印以下输出。

Julie
Robert
Chris
Joseph

Julie
Robert
Chris
Joseph

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程