我需要检查一下 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/