Was ist der beste Weg, um try-with-resources in Java 6 zu emulieren?
Es stellt sich heraus, dass fast niemand Ressourcen in Java korrekt schließt. Programmierer verwenden entweder nichttry-finally
überhaupt blockieren oder einfach setzenresource.close()
imfinally
das ist auch falsch (weilThrowable
vonclose()
kann schattenThrowable
aus dem try-Block). Manchmal setzen sie so etwas wieIOUtils.closeQuietly()
mit ist nur richtig fürInputStream
, aber nicht fürOutputStream
. try-with-resources
löst all diese Probleme, aber es gibt immer noch eine große Anzahl von Projekten, die in Java 6 geschrieben wurden.
Was ist der beste Weg, um zu emulierentry-with-resources
in Java 6? Jetzt benutze ichGuave näher, das ist besser als nichts aber immer noch viel hässlicher alstry-with-resources
. Es gibt auch ein Muster, das als Leihmuster bezeichnet wird, aber das Fehlen von Lambdas in Java macht dieses Muster sehr umständlich. Gibt es einen besseren Weg?