"¡Hola, amigo!"

"Como ya sabes, las clases internas anónimas no pueden tener un constructor".

"Sí. No es muy conveniente. Los constructores son realmente importantes".

"Como dice el refrán, nada es imposible si lo deseas lo suficiente".

"Recuerde, las variables estáticas no tienen constructores estáticos, pero hay un inicializador estático: el bloque estático".

"Sí, lo recuerdo".

"Las clases internas anónimas tienen exactamente el mismo inicializador, excepto que no es estático".

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

"Esta vez resalté el código de la clase interna anónima en rojo y su inicializador (en efecto, su constructor) en púrpura. El 'constructor' tiene un cuerpo, pero no hay una firma de método:"

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

"Puede declarar variables dentro de dicha clase e inicializarlas en el inicializador".

"Excelente, ahora hay muchas menos restricciones".

"Con eso, estamos conociendo las clases internas. Espero que les haya gustado".

"Mucho. Las lecciones de Kim, Rishi, y especialmente de ti, Ellie, han sido simplemente de primera categoría".

"¡Qué dulce conversador! Sigue adelante..."