我試圖創建一個使用這種方法如何在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