Responder a la pregunta sobre la limitación del alcance de una variable, en lugar de hablar de cerrar / eliminar automáticamente las variables.
En Java, puede definir ámbitos cerrados y anónimos utilizando llaves. Es extremadamente simple.
{
AwesomeClass hooray = new AwesomeClass()
// Great code
}
La variable hooraysolo está disponible en este ámbito y no fuera de él.
Esto puede ser útil si tiene variables repetidas que son solo temporales.
Por ejemplo, cada uno con index. Al igual que la itemvariable se cierra en el ciclo for (es decir, solo está disponible dentro de él), la indexvariable se cierra en el ámbito anónimo.
// first loop
{
Integer index = -1;
for (Object item : things) {index += 1;
// ... item, index
}
}
// second loop
{
Integer index = -1;
for (Object item : stuff) {index += 1;
// ... item, index
}
}
También utilizo esto a veces si no tiene un bucle for para proporcionar el alcance de la variable, pero desea usar nombres de variable genéricos.
{
User user = new User();
user.setId(0);
user.setName("Andy Green");
user.setEmail("andygreen@gmail.com");
users.add(user);
}
{
User user = new User();
user.setId(1);
user.setName("Rachel Blue");
user.setEmail("rachelblue@gmail.com");
users.add(user);
}
usinghace. El alcance no es de por vida (yusingtampoco se trata de vida, estrictamente hablando, yaDisposeque no destruye la memoria de un objeto)