2014-04-01 49 views
0

Scala noob here。类别Tap需要类型参数

我正在集成一个使用内部级联的webcrawler(bixo)。所以我一直在投入一些时间来逐行移植一个他们提供的例子(see here)。

到目前为止我还没有取得进展,我坚持的一件事是在sinkMap,基本上是级联Tap s的地图。

我写了路线为:

val sinkMap: Map[String, Tap] = Map[String, Tap]() 

和特定的线由巧合这里扔我

[ant:scalac] /home/matias/.../Crawler.scala:18: error: class Tap takes type parameters 
[ant:scalac]  val sinkMap: Map[String, Tap] = Map[String, Tap]() 
[ant:scalac]       ^
[ant:scalac] /home/matias/.../Crawler.scala:18: error: class Tap takes type parameters 
[ant:scalac]  val sinkMap: Map[String, Tap] = Map[String, Tap]() 
[ant:scalac]            ^

我编程。但我敢肯定,上面的代码应该如我所料......

任何指针都是受欢迎的。

回答

2

根据the documentationTap类需要三个类型参数,因此您需要在您的地图类型中指定它们。

例如Map[String, Tap[Scheme, BasePath, SinkMode]]

+0

对不起,你是从哪里得到的?我无法在该文档中找到对BasePath的引用。 – tutuca

+0

另外,是否有更好(更短)的方式来处理这一切? – tutuca

+0

@tutuca - 'BasePath'来自[sinkMap](https://github.com/bixo/bixo/blob/master/examples/src/main/java/bixo/examples/crawl/DemoCrawlWorkflow.java#L211)例如你链接到你的问题。我查看了'platform.makeTap'调用的参数来确定类型。至于使它更短,我不知道你可以。 java示例通过引用原始类型并在函数顶部抑制警告来省略它们。我不知道是否有一种方法可以在Scala中以相同的方式省略类型参数。 – Lee

相关问题