我试图创建一个使用这种方法如何在scala中的泛型方法中创建特征的实例?
val inst = new Object with MyTrait
这行之有效的性状的实例,但我想在这个移动创建到发电机的功能,即。
object Creator {
def create[T] : T = new Object with T
}
我显然会需要的清单以某种方式解决类型擦除问题,但之前,我要这个,我要2个问题运行:
即使有一个隐含的清单,斯卡拉仍然要求T是一个特质。如何添加限制来创建[T],以便T是一个特质?
如果我选择使用Class.newInstance方法动态创建实例而不是使用“new”,我将如何在“带T的新对象”中指定“with”?是否有可能在运行时动态创建新的混凝土混合类型?
这似乎是该语言的一个有趣的限制,但我没有看到为什么它无法通过Scala中新的“动态”混合支持修复的原因。特征代码已经作为静态方法提供,所以线性化查找可以在运行时计算,而不是烘焙到类字节码中。那么你只需要添加运行时类型检查,以便“asInstanceOf”起作用。 – ACyclic 2010-07-18 15:03:58