Java 16 instanceof 的模式匹配

来源:这里教程网 时间:2026-02-17 21:24:17 作者:

Java 16 instanceof 的模式匹配

Java 14 引入 instanceof 操作符作为一种预览功能,用于进行类型测试模式。类型测试模式使用谓词来指定类型,并带有一个单一绑定变量。在 Java 15 中,它仍然是一种预览功能。而在 Java 16 中,这个特性已经成为了标准的交付内容。

语法

if (person instanceof Employee e) {   return e.getEmployeeId();}

示例

考虑以下示例:

ApiTester.java

public class APITester {   public static void main(String[] args) {      Person manager = new Manager(23, "Robert");      manager.name = "Robert";      System.out.println(getId(manager));   }   public static int getId(Person person) {      if (person instanceof Employee e) {         return e.getEmployeeId();      }       else if (person instanceof Manager m) {         return m.getManagerId();      }      return -1;   }}abstract class Person {   String name;   String getName() {      return name;   }}final class Employee extends Person {   String name;   int id;   Employee(int id, String name){      this.id = id;      this.name = name;   }   int getEmployeeId() {      return id;   }}final class Manager extends Person {   int id;   Manager(int id, String name){      this.id = id;      this.name = name;   }   int getManagerId() {      return id;   }}

编译和运行程序

$javac APITester.java$java APITester

输出

23

相关推荐