This question already has answers here:
What does a “Cannot find symbol” or “Cannot resolve symbol” error mean?

(16个回答)


4年前关闭。




我是IntelliJ和Java的新手。
我正在尝试学习多线程,并且遇到了Executors类。

所以我想测试一下,这是我的代码示例。
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;


public class LegController {
    private List<Runnable> legs;
    private ExecutorService execute;

    public LegController() {
        legs = new ArrayList<>();
        for (int i = 0; i < 6; i++) {
            legs.add(LegFactory.getLeg("LEFT"));
        }

        execute = new Executors.newFixedThreadPool(6);
    }

    public void start(){

        //TODO
    }
}

但我收到一个错误:“无法解析符号'newFixedThreadPool'”。
我尝试了“使缓存无效并重新启动”,但是它没有帮助,我尝试了同步和重建项目,但是也没有用。

我不明白这个问题是从哪里来的,因为Executors类是导入的。此外,执行器的静态方法有自动补全功能。
可能是输入出现问题,但是如果出现问题,我该如何解决?

最佳答案

在此行中删除关键字new:

execute = new Executors.newFixedThreadPool(6);

它应该是:
execute = Executors.newFixedThreadPool(6);

方法newFixedThreadPoolExecutors类的静态方法。

10-04 19:59