私は現在、リソースを解放するためにJavaでこのようなことをしています。BufferedWriterオブジェクトでcloseを呼び出す必要がありますか、それともデストラクタで呼び出されますか?Resource1とResource2に関しては、リリースとフリーを尊重して呼び出す必要があります。これはネストされた試行での正しいアプローチですか?Pythonには、リソースをコードスコープに関連付ける非常に優れた「withステートメント」があります。javaにはいいねがありますか?
Resource1 r1 = new Resource1();
try
{
...
Resource2 r1 = new Resource2();
try
{
...
java.io.BufferedWriter f = new java.io.BufferedWriter(new java.io.FileWriter(new java.io.File("f")));
try
{
...
}
finally
{
f.close();
}
}
finally
{
r2.release();
}
}
finally
{
r1.free();
}
更新: Java1.6を使用しています