Я не знаю, возможно ли следующее. Я хотел бы run()
метод а Runnable
«S содержит сам Runnable
, т.е.Реализация рекурсивной лямбда-функции в Java
reconnects = 3;
Runnable executeAfter =() -> {
if (--reconnects < 0) {
println("%nStop using port %d.", this.port);
//...
} else { // try to reconnect
println("%nReconnecting...");
cmdRun = new CmdRun(command, executeAfter);
(new Thread(cmdRun)).start();
//...
}
};
ли что-то подобное возможно? Если да, то как? (CmdRun
's constructor is CmdRun(String command, Runnable executeAfter)
)
Это работает. Большое спасибо. – dotwin
, хотя он работает, но рекурсивно выполняет что-то вроде повтора/повторного подключения и т. Д., И появление нового потока на каждом уровне рекурсии кажется склонным к ошибкам. Рассмотрите возможность изменения дизайна –