Değişkenleri otomatik olarak kapatmak / elden çıkarmak yerine, bir değişkenin kapsamını sınırlandırmakla ilgili soruyu cevaplamak.
Java'da küme parantezleri kullanarak kapalı, anonim kapsamlar tanımlayabilirsiniz. Son derece basit.
{
AwesomeClass hooray = new AwesomeClass()
// Great code
}
Değişken hooray
yalnızca bu kapsamda mevcuttur ve onun dışında değildir.
Bu, yalnızca geçici olan tekrar eden değişkenleriniz varsa yararlı olabilir.
Örneğin, her biri dizine sahip. item
Değişkenin for döngüsü üzerinde kapalı olması gibi (yani, sadece onun içinde mevcuttur), index
değişken de anonim kapsam üzerinden kapatılır.
// 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
}
}
Bazen değişken kapsamı sağlamak için bir for döngüsünüz yoksa, ancak genel değişken adlarını kullanmak istiyorsanız bunu da kullanıyorum.
{
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
işe yarar. Kapsam ömür boyu değildir (veusing
kesinlikleDispose
bir nesnenin hafızasını yok etmediği için yaşam süresiyle de ilgili değildir.)