JavaのinstanceofをKotlinでやる

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) {
    ...
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です