1
挂上一个看起来很简单的问题,其中有很多信息(太多的信息需要了解当前状态)。Scala getClass match on super class/trait
无论如何,在这里。
trait _Foo
class Foo Extends _Foo with WhoAmI
trait WhoAmI {
def who = {
getClass match {
case x: _Foo => "should be Foo instance, which extends _Foo"
case _ => "why?"
}
}
}
val foo = new Foo
foo.who
已经尝试了后卫classOf和isAssignableFrom,以及循环通过x.getInterfaces(我至少看到_Foo那里),但没有运气的直接“精益条款“ 比赛。
这是擦除“工作”还是我错过了明显的1班轮?
如果这是许多其他线程的重复,我们可以关闭,但请指出我在正确的方向! ;-)
感谢
对不起,澄清的问题反映从哪里我试图确定当前实例是_Foo的子类;即从另一个特点 - 请参阅编辑 – virtualeyes 2012-04-14 18:03:47
@virtualeyes:在您编辑您的问题后,我的建议仍然有效:'getClass' - >'this' ... – 2012-04-14 18:11:53
是的!好的托马斯,谢谢 – virtualeyes 2012-04-14 18:20:40