必须使用GeoLocation类型的封闭实例来限定分配
我收到此错误为-
上将出现此错误。我不知道为什么会这样。任何建议将不胜感激。
public class GeoLocation { public static void main(String[] args) throws InterruptedException {
int size = 10;
// create thread pool with given size
ExecutorService service = Executors.newFixedThreadPool(size);
// queue some tasks
for(int i = 0; i < 3 * size; i++) {
service.submit(new ThreadTask(i));
}
// wait for termination
service.shutdown();
service.awaitTermination(Long.MAX_VALUE, TimeUnit.DAYS);
}
class ThreadTask implements Runnable {
private int id;
public ThreadTask(int id) {
this.id = id;
}
public void run() {
System.out.println("I am task " + id);
}
}
}
回答:
嗨,我找到了一个解决方案;-)
发生此错误的原因是,您尝试创建内部类的实例service.submit(new ThreadTask(i));
而不创建主类的实例。
要解决此问题,请首先创建主类的实例:
GeoLocation outer = new GeoLocation();
然后创建要调用的类的实例,如下所示:
service.submit(outer.new ThreadTask(i));
我希望这能解决您的问题;-)
以上是 必须使用GeoLocation类型的封闭实例来限定分配 的全部内容, 来源链接: utcz.com/qa/407309.html