"Olá, amigo!"

"Como você já sabe, classes internas anônimas não podem ter um construtor."

"Sim. Não é muito conveniente. Os construtores são realmente importantes."

"Como diz o ditado, nada é impossível se você quiser muito."

"Lembre-se, variáveis ​​estáticas não possuem construtores estáticos, mas existe um inicializador estático - o bloco estático."

"Sim, eu me lembro."

"Classes internas anônimas têm exatamente o mesmo inicializador, exceto que não são estáticas."

Exemplo
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;
 }
}

"Desta vez, destaquei o código anônimo da classe interna em vermelho e seu inicializador (na verdade, seu construtor) em roxo. O 'construtor' tem um corpo, mas não há assinatura de método:"

Expectativa Realidade
class Car
{
int policeNumber;
 Car(){
  policeNumber = number;
 }
}
class Car
{
int policeNumber;
{
policeNumber = number;
}
}

"Você pode declarar variáveis ​​dentro de tal classe e inicializá-las no inicializador."

"Excelente, agora há muito menos restrições."

"Com isso, estamos conhecendo classes internas. Espero que tenham gostado."

"Muito. As lições de Kim, Rishi e especialmente você, Ellie, foram simplesmente excelentes."

"Que fala doce! Continue..."