Language 入门

通过模式匹配在一步中组合类型检查和转换。

✕ Java 8
if (obj instanceof String) {
    String s = (String) obj;
    System.out.println(s.length());
}
✓ Java 16+
if (obj instanceof String s) {
    IO.println(s.length());
}
发现此代码有问题? 告诉我们。
🔄

无冗余转换

类型检查和变量绑定在单个表达式中完成。

📏

更少代码行

一行代替两行——转换行完全消失。

🛡️

作用域安全

模式变量仅在保证类型正确的作用域内有效。

旧方式
instanceof + 强制类型转换
现代方式
模式变量
自 JDK
16
难度
入门
instanceof 的模式匹配
可用

自 JDK 16 起广泛可用(2021 年 3 月)

instanceof 的模式匹配消除了 instanceof 检查后冗余的类型转换。绑定变量自动具有正确的类型和作用域。

分享 𝕏 🦋 in