1
我想看看是否有讓周圍型擦除有如下情況的任何方式:Scala中,一個具體的實現參數化特徵的反射
我有一個特質
trait IHandle[T <: ICommand] {
def handle(command: T) : Unit
}
而且我希望能夠找到使用反射的具體實現的說
IHandle[MyCommand]
這可能看起來像
class MyCommandHandler(dependency:Dependency) extends IHandle[MyCommand] {
def handle(command:MyCommand): Unit = ...
}
(我玩弄在CQRS模型創建命令分派,我更樂意聽到的話,這是完全錯誤的做法採取Scala和願意接受建議)
很酷,這幾乎是我所做的,對於一些通用服務接口,我還爲每個類型參數創建了一個顯式特徵。對查詢和命令使用嚴格的命名約定意味着我可以通過類名替換字符串進行註冊。 (對於事件監聽者來說不太可靠,因爲他們不是1-1) –
請記住,這種方法並不安全,您應該考慮嘗試創建一個類型類型。 –