Beantwortung der Frage zur Einschränkung des Gültigkeitsbereichs einer Variablen, anstatt über das automatische Schließen / Entsorgen von Variablen zu sprechen.
In Java können Sie geschlossene, anonyme Bereiche in geschweiften Klammern definieren. Es ist sehr einfach.
{
AwesomeClass hooray = new AwesomeClass()
// Great code
}
Die Variable hooray
ist nur in diesem Bereich verfügbar und nicht außerhalb.
Dies kann nützlich sein, wenn Sie sich wiederholende Variablen haben, die nur vorübergehend sind.
Zum Beispiel jeweils mit Index. So wie die item
Variable über die for-Schleife geschlossen wird (dh nur innerhalb dieser Schleife verfügbar ist), wird die index
Variable über den anonymen Bereich geschlossen.
// 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
}
}
Ich verwende dies manchmal auch, wenn Sie keine for-Schleife haben, um den Variablenbereich bereitzustellen, aber generische Variablennamen verwenden möchten.
{
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
. Der Umfang ist nicht lebenslang (undusing
streng genommen auch nicht lebenslang, da erDispose
das Gedächtnis eines Objekts nicht zerstört.)