2013-12-20 81 views

回答

4

如果你能做到這一點,你將如何使用它?

斯卡拉特徵被編譯成一個接口和一個相應的類。你能通過進入接口的方法(因爲接口是一種類):

scala> trait Foo 
scala> val c: Class = classOf[Foo] 
a: Class[Foo] = interface Foo 

scala> def someMethod(c: Class[_]) = c.getName 
scala> someMethod(a) 
res1: String = Foo 

類部分被編譯成一個隱藏Foo$class類文件。但是,您可以將一個類別實施爲您的特性轉換爲方法。由於劃分爲底層Java類和接口,我不知道直接傳遞Trait的方法。

又見this answerthis one

+0

感謝您的答覆。 – Mahendra