isInstanceOf 用于多种可能性

Kig*_*gyo 0 types scala

我可以像这样检查对象 o 是否是 A 或 B 的实例:

o.isInstanceOf[A] || o.isInstanceOf[B]
Run Code Online (Sandbox Code Playgroud)

但如果我有更多的可能性,这会变得丑陋。

有没有办法定义这样的东西:

o.isInstanceOf[A,B,C,D, ...]
Run Code Online (Sandbox Code Playgroud)

或者

o.isInstanceOf(A,B,C,D, ...)
Run Code Online (Sandbox Code Playgroud)

或者

o.isInstanceOf(Set(A,B,C,D, ...))
Run Code Online (Sandbox Code Playgroud)

om-*_*nom 5

sealed trait Super
class A extends Super
class B extends Super
class C extends Super
class D extends Super

val unknown: Super = new C
unknown match { case _: A | _: B | _: C => "I'm a super, but not D" } 
// I'm a super, but not D
Run Code Online (Sandbox Code Playgroud)