변수 자동 닫기 / 삭제에 대해 이야기하는 대신 변수 범위 제한에 관한 질문에 대답합니다.
Java에서는 중괄호를 사용하여 닫힌 익명 범위를 정의 할 수 있습니다. 매우 간단합니다.
{
AwesomeClass hooray = new AwesomeClass()
// Great code
}
변수 hooray
는이 범위에서만 사용할 수 있으며 외부에서는 사용할 수 없습니다.
이것은 일시적인 반복 변수가있는 경우 유용 할 수 있습니다.
예를 들어, 각각 인덱스가 있습니다. 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
객체의 기억을 파괴하지 않는 것처럼 수명에 관한 것도 아닙니다.)