![](/img/trans.png)
[英]Missing parameter type error with Iterable Trait method in Scala.
[英]Scala - Passing Trait type as method parameter
在java中,我們可以有一個將Class作為參數的方法,例如:
void someMethod(Class className)
{
System.out.println(className);
}
類似地,在Scala中有沒有一種方法可以將Trait作為參數而不是Class?
如果可以做到,您將如何使用它?
Scala特征被編譯為接口和相應的類。 您可以將接口傳遞給方法(因為接口是一種Class):
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
類文件。 但是,您可以將實現您的Trait的Class傳遞給方法。 由於拆分為基礎Java類和接口,我不知道直接傳遞特性的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.