¿Qué hace `someObject.new` en Java?
En Java, acabo de descubrir que el siguiente código es legal:
KnockKnockServer newServer = new KnockKnockServer();
KnockKnockServer.receiver receive = newServer.new receiver(clientSocket);
Para su información, el receptor es solo una clase auxiliar con la siguiente firma:
public class receiver extends Thread { /* code_inside */ }
Nunca he visto elXYZ.new
notación antes ¿Cómo funciona? ¿Hay alguna forma de codificar eso de manera más convencional?