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 hoorayist 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 itemVariable über die for-Schleife geschlossen wird (dh nur innerhalb dieser Schleife verfügbar ist), wird die indexVariable ü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 (undusingstreng genommen auch nicht lebenslang, da erDisposedas Gedächtnis eines Objekts nicht zerstört.)