Rozważmy następujący kod:Czy Java "buforuje" anonimowe klasy?
for(int i = 0;i < 200;i++)
{
ArrayList<Integer> currentList = new ArrayList<Integer>() {{
add(i);
}};
// do something with currentList
}
- Jak Java traktować klasę
currentList
? - Czy uzna to za inną klasę dla każdego z 200 obiektów?
- Czy będzie to hit, nawet po utworzeniu pierwszego obiektu?
- Czy to jakoś buforuje?
Jestem tylko ciekaw :)
Afaik anonimowa klasa to prosta klasa z tylko wygenerowaną nazwą. nic więcej. Buforowanie jest wykonywane tak, jak w przypadku każdej klasy w programie ładującym klasy. – ZeissS
faktycznie to wygeneruje błąd kompilatora: 'i' nie jest ostateczny, co byłoby złym pomysłem na licznik pętli. Ale dobre pytanie! –