2016-03-26 19 views
0

Aşağıdaki kod, derlemeyecek (JDK 1.8.0_40) ve nedenini anlayamıyorum., FutureTask iç sınıf oluşturma işlemini derleyemiyor

public abstract class BackgroundThread<T> { 
    private final ExecutorService executorService = Executors.newFixedThreadPool(1); 
    private final FutureTask<T> task; 

    public <T> BackgroundThread() { 
     this.task = new FutureTask<T>(new Callable<T>() { 
      @Override 
      public T call() throws Exception { 
       return BackgroundThread.this.perform(); 
      } 
     }); 
    } 

    public abstract T perform() throws Exception; 

    public abstract void onDone(); 

    public abstract void setProgress(int i); 

    public final void start() { 

    } 
} 

hata iletisi: hata (17, 53), Java uyumlu türleri: bir tip değişken tanımlar T kurucuda türü parametresi çıkarın T

+0

çözüldü! Kaldırılması gereken kurucudan tip parametresiydi. Intellij ayrıca yardımcı oldu: "T parametresi T tipi parametre T gizler" –

cevap

2

için dönüştürülemez olan kapsamı tamamen olduğu sınıf bildiriminde aynı adla T olan değişkenden farklı:

public BackgroundThread() {