2016-12-09 27 views
6

Tôi mới sử dụng IntelliJ và Java nói chung. Tôi đang cố gắng học đa luồng và tôi bắt gặp lớp Executors.IntelliJ không thể giải quyết biểu tượng "newFixedThreadPool"

Vì vậy, tôi muốn kiểm tra điều này, đây là mẫu mã của tôi.

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

Nhưng tôi gặp lỗi: "Không thể phân giải biểu tượng 'newFixedThreadPool'". Tôi đã thử "Vô hiệu hóa bộ nhớ cache và khởi động lại" nhưng nó không giúp đỡ, tôi đã thử đồng bộ hóa và xây dựng lại dự án, nhưng nó không hoạt động.

Tôi không hiểu vấn đề này đến từ đâu vì lớp Executors được nhập. Bên cạnh đó, đã có tự động hoàn thành cho các phương pháp tĩnh của Executors. Có thể có vấn đề trong quá trình nhập, nhưng nếu có, làm cách nào tôi có thể khắc phục sự cố?

+0

Tôi đoán bạn muốn 'execute = Executors.newFixedThreadPool (6);', tức là không có từ khóa 'new', làm cho trình biên dịch mong đợi một lời gọi hàm tạo (và không gọi một hàm tạo). – Thomas

+0

cũng không có phương thức Executors.newSingleThreadExecutor (int). –

Trả lời

12

Tháo khóa new trong dòng này:

execute = new Executors.newFixedThreadPool(6); 

Nó nên là:

execute = Executors.newFixedThreadPool(6); 

Phương pháp newFixedThreadPool là một phương pháp tĩnh của lớp Executors.

+0

Cảm ơn rất nhiều, trên thực tế tôi đã đặt từ khóa mới theo phản xạ và do đó đã không nhận thấy nó. – Irindul

1

Tháo từ khóa mới từ dòng này:

execute = Executors.newFixedThreadPool(6); 

cú pháp của bạn thực sự cố gắng để gọi constructor của một lớp bên trong tĩnh 'newFixedThreadPool' trong lớp Executor. Lớp bên trong tĩnh đó không tồn tại. Thay vào đó, bạn phải gọi phương thức factory tĩnh ...

Các vấn đề liên quan