Jo to je celkem dobra konstrukce a bylo by fajn jimit v Jave taky. V C#
to predpoklada, ze trida (jako napr. tady BufferedReader) implementuje
IDisposable, ktera ma metodu dispose().
Podobna konstrukce je u transakci:
using(TransactionScope scope = new TransactionScope())
{
/* Transactional work */
}
Zdenek Tronicek wrote:
V navaznosti na tuto diskuzi bych rad poznamenal, ze jednim z navrhu na
vylepseni Javy je Automatic Resource Management. Misto
static String readFirstLineFromFile(String path) throws IOException {
BufferedReader br = new BufferedReader(new FileReader(path));
try {
return br.readLine();
} finally {
br.close();
}
}
bychom pak mohli psat
static String readFirstLineFromFile2(String path) throws IOException {
try (BufferedReader br = new BufferedReader(new FileReader(path)) {
return br.readLine();
}
}
K zavreni streamu br dojde automaticky po opusteni bloku try. Mimochodem,
C# to ma.
Z.T.