2014-04-01 78 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

相關問題