IntelliJ не может разрешить символ "newFixedThreadPool"
Я новичок в 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 "". Я попробовал "Invalidate cache and restart", но это не помогло, я попытался синхронизировать и перестроить проект, но он тоже не сработал.
Я не понимаю, откуда эта проблема, потому что импортируется класс Executors. Кроме того, было автозаполнение для статических методов Исполнителей. Может быть, проблема в импорте, но если так, как я могу это исправить?
2 ответа
Удалить ключевое слово new
в этой строке:
execute = new Executors.newFixedThreadPool(6);
Так должно быть:
execute = Executors.newFixedThreadPool(6);
Метод newFixedThreadPool
статический метод класса Executors
,
Удалите новое ключевое слово из этой строки:
execute = Executors.newFixedThreadPool(6);
Ваш синтаксис на самом деле пытается вызвать конструктор статического внутреннего класса 'newFixedThreadPool' внутри класса Executor. Этот статический внутренний класс не существует. Вместо этого вы должны вызвать статический метод фабрики...