„Здрасти, Амиго!“

„Както вече знаете, анонимните вътрешни класове не могат да имат конструктор.“

"Да. Не е много удобно. Конструкторите са наистина важни."

"Както се казва, нищо не е невъзможно, ако го желаеш достатъчно силно."

„Не забравяйте, че статичните променливи нямат статични конструктори, но има статичен инициализатор – статичният блок.“

— Да, спомням си.

„Анонимните вътрешни класове имат абсолютно същия инициализатор, освен че не е статичен.“

Пример
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а на анонимния вътрешен клас в червено и неговия инициализатор (всъщност неговият конструктор) в лилаво. „Конструкторът“ има тяло, но няма сигнатура на метода:“

Очакване Реалност
class Car
{
int policeNumber;
 Car(){
  policeNumber = number;
 }
}
class Car
{
int policeNumber;
{
policeNumber = number;
}
}

"Можете да декларирате променливи вътре в такъв клас и да ги инициализирате в инициализатора."

„Отлично, сега има много по-малко ограничения.“

„С това се запознаваме с вътрешните класове. Надявам се, че ви е харесало.“

„Много. Уроците от Ким, Риши и особено от теб, Ели, бяха просто на първо ниво.“

„Какъв сладcodeумец! Продължавай...“