Language 初級

パターンマッチングで型チェックとキャストを1ステップで行う。

✕ 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());
}
このコードに問題がありますか? お知らせください。

冗長なキャストの排除

型チェックと変数バインディングが1つの式で完結します。

📉

行数の削減

2行が1行になります — キャストの行が完全になくなります。

🔒

スコープの安全性

パターン変数は型が保証されるスコープ内でのみ有効です。

旧来のアプローチ
instanceof + キャスト
モダンなアプローチ
パターン変数
JDKバージョン
16
難易度
初級
instanceofのパターンマッチング
利用可能

JDK 16(2021年3月)以降、広く利用可能

instanceofのパターンマッチングにより、型チェック後の冗長なキャストが不要になります。パターン変数は型が保証されるスコープ内でのみ有効になるため、コードがより安全かつ簡潔になります。

共有 𝕏 🦋 in