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 hoorayyalnı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. itemDeğişkenin for döngüsü üzerinde kapalı olması gibi (yani, sadece onun içinde mevcuttur), indexdeğ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);
}
usingişe yarar. Kapsam ömür boyu değildir (veusingkesinlikleDisposebir nesnenin hafızasını yok etmediği için yaşam süresiyle de ilgili değildir.)