Search code examples
javamultithreadingswingconcurrencyswingworker

SwingWorker method process() shows error


I am trying to learn SwingWorker but encountered the following error . I don't know how to solve this problem. Error is shown in the comment part of the code. package learnswingworker;

import java.awt.List;
import java.util.ArrayList;
import javax.swing.SwingWorker;

public class Try extends SwingWorker<ArrayList<Integer>, Integer>{

   @Override
    protected ArrayList<Integer> doInBackground() throws Exception {
        ArrayList<Integer> primeNumbers = new ArrayList<Integer>();
        Integer i=4;
        boolean divisibleYet = false;
        while(true){

        for(Integer k=2;k<=(i/2);k++){
                if(i%k==0){
                    divisibleYet=true;
                }

        }
                if(!divisibleYet){
                    publish(i);
                }
        i++;
        divisibleYet=false;
        }
    }

    @Override         // Shows ERROR ::: Method does not Override or Implement a method from a supertype.
    protected void process(List<Integer>  chunks){  // Shows ERROR ::: Type List does not take parameters.

    }
}

Solution

  • You're importing java.awt.List; instead of java.util.List...

    If you are using you both, then I'm worried, but, you use the fully qualified class name to differentiate between the two...

    protected void process(java.util.List<Integer>  chunks)