我最近已經返回scala之後,在python長期中斷,並試圖再次圍繞類型系統我的思想。我正在嘗試製作一個非常簡單的網址調度程序,以便再次熟悉該語言。到目前爲止,我有:Scala類型錯誤與特徵和泛型
trait Executable {
def execute(request: HttpRequest, response: HttpResponse): Future[HttpResponse]
}
class HelloWorldHandler extends Executable {
override def execute(request: HttpRequest, response: HttpResponse) = {
Future.value(response)
}
}
我覺得我這裏是斯卡拉相當於一個接口可執行和實現該接口的類的。現在,我想創建的URL映射到處理程序,像這樣:
val mapping: Map[String, _ <: Executable] = {
"/hello" -> new HelloWorldHandler()
}
當我編譯,我得到以下錯誤:
type mismatch;
found : (java.lang.String, pollcaster.handlers.HelloWorldHandler)
required: Map[String,pollcaster.Executable]
"/" -> new HelloWorldHandler()
^
我不知道我哪裏錯了在我的理解這裏,但將不勝感激任何幫助瞭解如何可以將一堆具有可執行特性的不同類放入地圖對象中?
TIA
工作!我想我的腦子上有太多的蟒蛇。 – dhable