检查对象的类是否从特定的密封类继承

时间:2019-11-14 15:45:09

标签: kotlin

我有一个密封班

sealed class Seal {
        object Type1
        object Type2
    }

,我想知道一个对象是从“印章”派生的 例如

when (thing) {
    is Type1 -> {}//this returns true    
    is Seal -> {}//this returns false
}

是否可以检查“事物”类型是否为“密封”,而不是检查其类型为“ Type1”还是“ Type2”?

1 个答案:

答案 0 :(得分:3)

Type1Type2的类型为Seal不是!为此,您必须使它们继承密封的类:

sealed class Seal {
    object Type1 : Seal()
    object Type2 : Seal()
}

现在这两种情况都是正确的:

when (thing) {
    is Type1 -> {}//this returns true    
    is Seal -> {}//this returns true    
}

更多信息,请访问kolin doc