Java 新特性-类型匹配

类型匹配是模式匹配的一个规范,它在 JDK16 中正式发布。

通常,一个模式是匹配谓词和匹配变量的组合。其中,匹配谓词用来确定模式和目标是否匹配。在模式和目标匹配的情况下,匹配变量是从匹配目标里提取出来的一个或者多个变量。对于类型匹配来说,匹配谓词用来指定模式的数据类型,而匹配变量就是一个属于该类型的数据变量。需要注意的是,对于类型匹配来说,匹配变量只有一个。

通过下面的代码片段来理解类型匹配:

1
2
3
4
5
6
7
8
9
10
11
public void testTypeMatch(Object obj) {
// 传统的实现代码
if (obj instanceof String) {
System.out.println(((String) obj).length());
}

// 类型匹配的代码
if (obj instanceof String stringObj) {
System.out.println(stringObj.length());
}
}

语句 obj instanceof String stringObj 的组成:

  • obj instanceof String stringObj 为类型匹配
  • obj 为目标变量
  • instanceof String 为匹配谓词
  • stringObj 为匹配变量

Java 新特性-类型匹配
https://blog.yohlj.cn/posts/949675d9/
作者
Enoch
发布于
2023年1月13日
许可协议