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)
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[][]>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With