Meine IDE beschwert, dass „NCM_Callable nicht zu Callable<ReturnInterface<? extends Object>>
auf dieser Linie this.ph.submitCallable(new NCM_Callable(this, new DeviceGroup(this.deviceGroupNames.get(i)), ph)); In the "fetchDevices()" method
Java Generics Probleme verursacht
Ich möchte umgewandelt werden nur in der Lage sein Callables meiner ecs zu übergeben, die eine ReturnInterface jede Art von Objekt enthält, zurückgibt.
ich vermute, etwas falsch mit meiner Nutzung von <> allgemeinen Definitionen gibt es, aber ich kann nicht scheinen, um herauszufinden, was es ist. Jede mögliche Hilfe würde geschätzt.
@Override
public void fetchDevices() throws Exception {
System.out.println("[NCM_Fetcher]fetchingDevices()");
for (int i = 0; i < this.deviceGroupNames.size(); i++) {
System.out.println("[NCM_Fetcher]fetchingDevices().submitting DeviceGroup Callable " + i+ " of "+this.deviceGroupNames.size());
this.ph.submitCallable(new NCM_Callable(this, new DeviceGroup(this.deviceGroupNames.get(i)), ph));
}
this.ph.execute();//See progressBarhelper below
}
ProgressB arHelper: Ich habe einen seltsamen Fehler bei "ecs.submit()". Nach dem, was ich gelesen habe, scheint es, dass ich eine Hilfsmethode brauche? Wie repariere ich?
public class ProgressBarHelper extends SwingWorker<Void, ReturnInterface> implements ActionListener {
ExecutorService pool = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
protected CompletionService<ReturnInterface<?>> ecs;
public final void submitCallable(Callable<? extends ReturnInterface<?>> c) {
//create a map for this future
ecs.submit(c);
this.callables.add(c);//Error here is Callable<CAP#1 cannot be converted to Callable<ReturnInterface<?>>
System.out.println("[ProgressBarHelper]submitted");
}
}
Und schließlich die Klasse NCM_Callable mit ihren Generics.
public class NCM_Callable implements Callable<ReturnInterface<ResultSet>>, ReturnInterface<ResultSet> {
Zuerst erstellen [MCVE]. Sie werden wahrscheinlich Ihr Problem dabei lösen. – 4castle
Mögliches Duplikat von [Java Generics, verschachtelte Sammlung von Platzhaltern] (http://stackoverflow.com/questions/6293871/java-generics-nested-collection-of-wildcard) – 4castle
Es ist kein Duplikat. –