Wie kann ich von Java anonyme Klassen ausgegeben werden? In .Net würde ich Schließungen verwenden.Ausgabe von anonymen Klassen?
executor = Executors.newSingleThreadExecutor();
final Runnable runnable = new Runnable() {
public Exception exception;
@Override
public void run() {
try {
doSomething();
}
catch (Exception exception) {
// I'd like to report this exception, but how?
// the exception member is not readable from outside the class (without reflection...)
this.exception = exception;
}
}
};
executor.submit(runnable);
// Here I'd like to check if there was an exception
Also sollte ich nicht Runnable verwenden, oder? – ripper234
Wenn Sie ein Ergebnis erhalten möchten, sollten Sie Callable verwenden. Es gibt keine Möglichkeit, einen Wert als Ergebnis von Runnable zurückgeben (IIRC Aufruf 'Get' für Runnables Null zurückgegeben) – andri
Vielmehr die Aufgabe, die ich ordnungsgemäß ausführen möchte keinen Rückgabewert, aber ich möchte auf Ausnahmen benachrichtigt werden. Runnable.run() deklariert keine Ausnahmen, daher kann ich das nicht verwenden. Callable muss etwas zurückgeben. Ich kann die aufrufbare Rückgabe die Ausnahme haben, aber das scheint ein bisschen suboptimal. Idealerweise hätte ich gerne eine andere ähnliche Klasse, deren 'run equivalent' Ausnahmen auslösen kann, aber void zurückgibt. Naja. – ripper234