e2rabi:
He encontrado una oportunidad con el ejemplo recursos que no se compila cuando intento para establecer el valor de la exploración de referencia en null
try(Scanner scan = new Scanner(System.in)) {
String s = scan.nextLine();
System.out.println(s);
scan = null;
}
Me pregunto cuál es la regla detrás de este error de compilación, he hecho un poco de búsqueda en la red pero no encontré una regla que explique Gracias por cualquier explicación: =)
Andrew Tobilko:
Es por diseño. No se puede volver a asignar una final
variable.
14.20.3. try-con-recursos
Una variable declarada en una especificación de recursos se declara implícitamente
final
si no se declara explícitamentefinal
(§4.12.4).