Je suis nouveau en Java8
, et je veux savoir si, pour la ressource AutoCloseable
, je dois ajouter un try
pour chaque resource
, ou cela fonctionnera avec le code ci-dessus
try (Connection conn = getConnection();) {
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery(sql);
while (rset.next()) {
TelefonicaDataVO vo = new TelefonicaDataVO();
vo.setTelefonicaDataId(rset.getString("Telefonica_PSD_ID"));
vo.setReceptionDate(nvl(rset.getTimestamp("CREATION_DATE")));
vo.setMessage(nvl(rset.getString("MESSAGE")));
ret.add(vo);
}
}
Essayez avec des ressources peut être utilisé avec plusieurs ressources en les déclarant toutes dans le bloc try
et cette fonctionnalité introduite dans Java 7 pas dans Java 8 Si vous en avez plusieurs, vous pouvez donner comme ci-dessous
try (
Java.util.Zip.ZipFile zf =
new Java.util.Zip.ZipFile(zipFileName);
Java.io.BufferedWriter writer =
Java.nio.file.Files.newBufferedWriter(outputFilePath, charset)
) {
// Enumerate each entry
for (Java.util.Enumeration entries =
zf.entries(); entries.hasMoreElements();) {
// Get the entry name and write it to the output file
String newLine = System.getProperty("line.separator");
String zipEntryName =
((Java.util.Zip.ZipEntry)entries.nextElement()).getName() +
newLine;
writer.write(zipEntryName, 0, zipEntryName.length());
}
}
Dans cet exemple, le try-with-resources
L'instruction contient deux déclarations séparées par un point-virgule: ZipFile et BufferedWriter . Lorsque le bloc de code qui le suit directement se termine, normalement ou en raison d'une exception, les méthodes de fermeture des objets BufferedWriter et ZipFile sont automatiquement appelées dans cet ordre. Notez que les méthodes proches des ressources sont appelées dans l'ordre inverse de leur création .
Veuillez consulter documentation pour plus d'informations