В Java я только что узнал, что следующий код является законным:
KnockKnockServer newServer = new KnockKnockServer();
KnockKnockServer.receiver receive = newServer.new receiver(clientSocket);
FYI, приемник - это только класс-помощник со следующей сигнатурой:
public class receiver extends Thread { /* code_inside */ }
Я никогда раньше не видел нотацию XYZ.new
. Как это работает? Есть ли способ кодировать это более условно?