次のエラーが表示されます。
次の一致するコンストラクターが見つかりませんでした: 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()
}
}
}
私はこれらの(醜い)アプローチを試しました:
- インターフェイスを作成します (フェッチコンストラクター内のサイトサイトの代わりにISite サイトを使用)
- fetchクラス内の各サブクラスにコンストラクターを配置します
- super()を呼び出す各サブクラス内にコンストラクターを配置します。
何か案が?