4 Stimmen

FutureTask, die Callable implementiert

Ich möchte eine Unterklasse von FutureTask erstellen, die einen standardmäßigen No-Arg-Konstruktor hat. Ich möchte insbesondere, dass meine Unterklasse die Callable-Schnittstelle implementiert und sich selbst als Callable verwendet. Auf diese Weise können Benutzer von MyFutureTask einfach eine Unterklasse von MyFutureTask erstellen, anstatt ihren eigenen Callable zu implementieren und ihn an eine Instanz von FutureTask zu übergeben.

Hier ist die allgemeine Idee:

public abstract class MyFutureTask<Result> extends FutureTask<Result> implements Callable<Result> {

    public MyFutureTask() {
        super( /*XXX*/ );        
    }

    public abstract Result call() throws Exception;

}

Das Problem ist, was kann ich in die XXX ? FutureTask erfordert ein Callable, aber ich kann nicht übergeben this denn Java erlaubt keine Verweise auf this aus einem Aufruf von super . Ich kann keine verschachtelte Klasse instanziieren, da dies ebenfalls nicht erlaubt ist.

Gibt es einen cleveren (oder nicht cleveren) Weg, wie ich das machen kann?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X