如何在 Java 中创建方法来创建新的循环类型?

How can I create a method in Java to create a new loop type?

我正在努力创建一些 Java 方法来更快、更高效地编写代码,现在我正在尝试制作一个简单的循环,我称之为“重复”。

它将像这样工作:

repeat(number of times to repeat) {
   code to be repeated
}

例如:

repeat(3) {
   System.out.println("hi")
}

会显示:

hi
hi
hi

如何制作这样的 method/function? 我还需要它作为嵌套循环工作。

repeat(3) {
   System.out.println("hi")
}
  1. Java 不支持此语法。如果您想通过语法支持这一点,请尝试另一种支持闭包的语言
  2. 另一种方法你可以试试,Java可以用lambda实现
public static void main(String[] args) {

   repeat(3, () -> {
       System.out.println("hi");
   });
}

public static void repeat(int count, Runnable function) {
   for(int i = 0; i < count; i++) {
      function.run();
   }
}

如果你真的想避免所有的 for 循环,你可以使用 @math-chen 解决方案的递归版本:

public static void repeat(int count, Runnable function) {
        if (count > 0) {
           function.run();
           repeat(count - 1, function);
        }
}

由于递归调用是在方法的最后,这个“tail-call”理论上可以优化为不使用任何额外的堆栈,但 JVM 可能不会这样做。 (实验表明它不会)