Чтобы ответить на вопрос об ограничении области действия переменной, вместо того, чтобы говорить об автоматическом закрытии / удалении переменных.
В Java вы можете определять закрытые анонимные области, используя фигурные скобки. Все очень просто.
{
AwesomeClass hooray = new AwesomeClass()
// Great code
}
Переменная hooray
доступна только в этой области, а не за ее пределами.
Это может быть полезно, если у вас есть повторяющиеся переменные, которые являются временными.
Например, каждый с index. Так же, как item
переменная закрывается в цикле for (т.е. доступна только внутри него), index
переменная закрывается в анонимной области.
// 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
}
}
Я также иногда использую это, если у вас нет цикла for для предоставления области переменной, но вы хотите использовать общие имена переменных.
{
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);
}
using
нужно. Сфера - это не время жизни (иusing
не время жизни, строго говоря, посколькуDispose
не разрушает память объекта)