Сначала я предположил, что фрагмент кода python работает, потому что в python есть генераторы и выход . Какой Java не имеет. В Java метод возвращает одно значение и только одно значение. На платформе JVM ближе всего можно найти конструкцию loop / yield , предложенную Scala.
Или, может быть, Java 8 Streams.
Но, учитывая комментарии, я внимательно посмотрел на ваш пример, приведя к этому модулю python . Все сводится к schedule.every()
, возвращающему объект планировщика, который просто вызывал переданную ему функцию job
, основываясь на продолжительности, передаваемой через «свободный» интерфейс.
Вы можете сделать очень похожую вещь в Java, где вы помещаете метод static
в некоторый класс, который просто создает экземпляр некоторого класса Scheduler, который вы затем передаете, например, лямбда / методу.
Но, конечно, в Java также есть встроенные механизмы для этого, например, ScheduledExecutorService .