Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't override process() method in SwingWorker

I have a SwingWorker class as follows:

    class RemotePlayersWorker extends SwingWorker<String[][], Object> {
        PlayerCanvas parent;
        RemoteHandler remote;
        String[][] players;
        int maximumConnections;

        public RemotePlayersWorker(PlayerCanvas parentCanvas, RemoteHandler remoteHandle) {
            this.parent = parentCanvas;
            this.remote = remoteHandle;
        }

        @Override
        protected String[][] doInBackground() throws Exception {
            System.out.println("TEST 1");
            players = remote.getConnectedPlayers();
            publish(players);
            return players;
        }

        @Override
        protected void process(List<String[][]> chunks) {
            for (String[][] chunk : chunks) {
                 // no need for the c variable
                 System.out.println(chunk.toString());
              }
        }

        @Override 
        protected void done() {

        }
    }

However, I'm getting errors when overriding the process(List chunks) method. Eclipse tells me this:

The method process(List) of type PlayerHandler.RemotePlayersWorker must override or implement a supertype method

However, as far as I can tell, I am overriding the method correctly - I get the same error regardless of what I set the list type to.

Is there any other reason I wouldn't be able to override process()?

I'm using java version "1.7.0_10" - Java(TM) SE Runtime Environment (build 1.7.0_10-b18)

like image 951
BnMcG Avatar asked Mar 17 '13 09:03

BnMcG


1 Answers

The SwingWorker class is defined as follows:

public class SwingWorker<T, V> {
    ...
    protected void process(List<V> chunks) {
        ...
    }
}

So, since your subclass is declared as

class RemotePlayersWorker extends SwingWorker<String[][], Object> {

The process method should take a List<Object> as argument, and not a List<String[][]>

like image 76
JB Nizet Avatar answered Sep 23 '22 13:09

JB Nizet