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