Javaのinstanceof演算子
Javaでは、対象のオブジェクトが特定のクラスまたはその子クラスか、インタフェースを実装しているかを調べるときにinstanceof演算子を使用します。
Food food = new Banana() if (food instanceof Banana) { Banana banana = (Banana) food; banana.peel(); }
Kotlinのis演算子
Kotlinでは同様のことをis演算子を用いて行います。
さらにKotlinにはSmart Castという機能があり、is演算子で判定した後は明示的にキャストする必要がありません。
val food = Banana() if (food is banana) { banana.peel() }
直感的でわかりやすいです。
ちなみに逆の場合は以下のようにします。
val food = Banana() if (food !is banana) { ... }
コメントを残す