Esta es una pregunta de estilo de código. Me he dado cuenta mucho código de ejemplo incluidos algunos examples from Oracle asegurar que una corriente se cierra de la siguiente manera:Estilo de código Java para secuencia abierta try/finally block
InputStream in = null;
try {
in = acquireStream();
...
} finally {
if (in != null) in.close();
}
Nota a la inicialización nulo y comprobar NULL en el bloque finally
.
tiendo a escribir código como este:
InputStream in = acquireStream();
try {
...
} finally {
in.close();
}
¿Hay ventajas o desventajas de uno u otro enfoque? Me gusta mi estilo porque no necesito el cheque nulo. También me gusta evitar null
cuando sea posible. Pero dado que el estilo de Oracle es tan común en los ejemplos en línea, me pregunto si el mío tiene algún error oculto.
me hacen la misma pregunta para InputStream
, OutputStream
, java.sql.Connection
, java.sql.PreparedStatement
, etc. tiendo a adquirió el recurso fuera del bloque try
y cierre en finally
sin un cheque nulo. ¿Hay algo que me falta aparte de las diferencias de estilo?
Gracias.
Ver: http://commons.apache.org/io/api-release/org/apache/commons/io/IOUtils.html#closeQuietly(java.io.InputStream) – Jon