„Здрасти, Амиго!“
„Както вече знаете, анонимните вътрешни класове не могат да имат конструктор.“
"Да. Не е много удобно. Конструкторите са наистина важни."
"Както се казва, нищо не е невъзможно, ако го желаеш достатъчно силно."
„Не забравяйте, че статичните променливи нямат статични конструктори, но има статичен инициализатор – статичният блок.“
— Да, спомням си.
„Анонимните вътрешни класове имат абсолютно същия инициализатор, освен че не е статичен.“
class Car
{
public ArrayListcreatePoliceCars(int count)
{
ArrayList result = new ArrayList();
for(int i = 0; i < count; i++)
{
final int number = i;
result.add(new Car()
{
int policeNumber;
{
policeNumber = number;
}
});
}
return result;
}
}
„Този път подчертах codeа на анонимния вътрешен клас в червено и неговия инициализатор (всъщност неговият конструктор) в лилаво. „Конструкторът“ има тяло, но няма сигнатура на метода:“
Очакване | Реалност |
---|---|
|
|
"Можете да декларирате променливи вътре в такъв клас и да ги инициализирате в инициализатора."
„Отлично, сега има много по-малко ограничения.“
„С това се запознаваме с вътрешните класове. Надявам се, че ви е харесало.“
„Много. Уроците от Ким, Риши и особено от теб, Ели, бяха просто на първо ниво.“
„Какъв сладcodeумец! Продължавай...“
GO TO FULL VERSION