2
在java中,我们可以具有取类作为参数,例如一种方法:斯卡拉 - 传递性状类型作为方法参数
void someMethod(Class className)
{
System.out.println(className);
}
类似地,代替类的,有没有在阶的方式来取特质作为参数?
在java中,我们可以具有取类作为参数,例如一种方法:斯卡拉 - 传递性状类型作为方法参数
void someMethod(Class className)
{
System.out.println(className);
}
类似地,代替类的,有没有在阶的方式来取特质作为参数?
如果你能做到这一点,你将如何使用它?
斯卡拉特征被编译成一个接口和一个相应的类。你能通过进入接口的方法(因为接口是一种类):
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的方法。
感谢您的答复。 – Mahendra