Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

IntelliJ cannot resolve symbol "newFixedThreadPool" [duplicate]

I'm new to IntelliJ and Java in general. I'm trying to learn multithreading and I came across the Executors class.

So I wanted test this, here is a sample of my code.

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
    }
}

But I get an error : "Cannot resolve symbol 'newFixedThreadPool'". I tried "Invalidate cache and restart" but it didn't help, I tried synchronise and rebuild project, but it didn't work either.

I don't understand where this problem is coming from because the class Executors is imported. Besides, there was autocompletion for the static methods of Executors. Maybe there is a problem in the importation, but if so, how could I fix it ?

like image 536
Irindul Avatar asked Dec 09 '16 13:12

Irindul


1 Answers

Remove the keyword new in this line:

execute = new Executors.newFixedThreadPool(6);

It should be:

execute = Executors.newFixedThreadPool(6);

The method newFixedThreadPool is a static method of class Executors.

like image 197
Jesper Avatar answered Dec 20 '22 12:12

Jesper