scala - 如何确定 Scala 中对象的类?

标签 scala subclass instanceof subtyping

我需要检查一下 y 严格来说是 的一个实例酒吧 而不是 foo .我怎样才能在 Scala 中做到这一点?

trait foo {}

trait bar extends foo {}

val x = new foo {}
val y = new bar {}

x.isInstanceOf[foo] // true
x.isInstanceOf[bar] // false

y.isInstanceOf[bar] // true
y.isInstanceOf[foo] // true (but I want it to return false)

最佳答案

getClass如果您只是创建新实例,它将起作用。但是您正在创建新的匿名类和它们的实例。

对于那些与 foo 和 bar 的关系完全相同:它们是父类(super class)。

关于scala - 如何确定 Scala 中对象的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30018837/

相关文章:

NHibernate:实体和同一查询中可能的子类的查询条件

swift - 如何在 swift 中更改子类中的属性值?

javascript - (String instanceof Object) 返回 true 但我无法在 String.prototype 链中找到 Object.prototype

java - 是否可以在 switch 语句中使用 instanceof 运算符?

scala - Play 2 : How to test controllers with non-empty request body

scala - Scala 中 mutable.Set.foreach 的错误?

ios - 覆盖 loadView 会导致 viewDidLoad 和 loadView 在每次出现 VC 时触发

javascript - typescript 实例不工作

json - Play 案例类的json读取和默认参数?

scala - Casbah 中的 Mongodb $elemMatch