我最近已经返回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