Groovy:找不到"子类"的匹配构造函数



我得到以下错误:

找不到匹配的构造函数:org.crawler.CrawlerUtils$fetch(org.series.crawler.site.SubSiteA).

我正在尝试使用线程。我只使用过一次线程,而且我正在尝试做与其他项目相同的事情。

我有:

Class CrawlerUtils {
public static void crawlSites(List<Site> sites) {
def pool = Executors.newFixedThreadPool(MAX_THREADS)
def ecs = new ExecutorCompletionService<Void>(pool);
sites.each { ecs.submit(new fetch(it), Void) }
sites.each { ecs.take().get() }
pool.shutdown()
}
class fetch implements Runnable {
Site site
fetch(Site site) {
this.site = site
}
public void run() {
site.parse()
}
}
}

我尝试了这些(丑陋的)方法:

  • 创建接口(在fetch构造函数中使用ISite site而不是site site>)
  • fetch类内的每个子类中放置一个构造函数
  • 在每个调用super()的子类中放入一个构造函数

知道吗?

由于crawlSites是静态的,类Fetch(应该有一个大写字母来遵循任何形式的通用命名方案)也需要是静态的。

static class Fetch implements Runnable

不过我会用GPars。。。查看指南的这一部分

你应该能够做到:

GParsPool.withPool {
sites.eachParallel { site -> site.parse() }
}

最新更新