Betrachten Sie den folgenden Code ein:Wird Java anonyme Klassen "zwischengespeichert"?
for(int i = 0;i < 200;i++)
{
ArrayList<Integer> currentList = new ArrayList<Integer>() {{
add(i);
}};
// do something with currentList
}
- Wie wird Java behandeln die Klasse von
currentList
? - Wird es eine andere Klasse für jedes der 200 Objekte betrachten?
- Wird es ein Leistungseinbruch sein, selbst nachdem das erste Objekt erstellt wurde?
- Speichert es es irgendwie?
Ich bin nur neugierig :)
umgewandelt werden Afaik eine anonyme Klasse ist eine einfache Klasse mit nur einem generierten Namen. nichts mehr. Caching wird wie bei jeder Klasse im Classloader durchgeführt. – ZeissS
tatsächlich wird dies einen Compilerfehler erzeugen: 'i' ist nicht endgültig, was eine schlechte Idee für einen as-Schleifenzähler wäre. Aber eine gute Frage! –