gpt4 book ai didi

java - 必须使用 GeoLocation 类型的封闭实例来限定分配

转载 作者:IT老高 更新时间:2023-10-28 11:23:33 25 4
gpt4 key购买 nike

我收到此错误 -

无法访问 GeoLocation 类型的封闭实例。必须使用 GeoLocation 类型的封闭实例来限定分配(例如 x.new A(),其中 x 是 GeoLocation 的一个实例)。此错误出现在 new ThreadTask(i) 。我不知道为什么会这样。任何建议将不胜感激。

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));

关于java - 必须使用 GeoLocation 类型的封闭实例来限定分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9744639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com