必须使用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

回到顶部